私は Boggle ゲームに取り組んでいますが、単語を検索する最良の方法は再帰を使用することだという人もいました。単語を検索するための searchWord メソッドを試しています。最初の文字が見つかった場合、メソッドはそれ自体を呼び出し、最初の文字を削除します。このメソッドは、長さ == 0 (単語が見つかった場合) または false (文字が見つからない場合) の場合に true を返します。問題は時々、1つの「サイコロ」の周りに同じ文字が複数回ある...解決するには、その文字を数える必要があり、それが複数回ある場合は、その文字の次の出現を検索する必要があります(検索最初の文字を削除せずに同じ単語)。その文字と、複数の文字がバインドされている文字のインデックスを記憶する方法が必要です。これにより、文字が見つからないときに、他の可能性があるかどうかを確認するために使用できます。以来」
皆さんが助けてくれることを願っています! メソッドは次のとおりです。
public boolean searchWord(String word, int i, int j) {
boolean res;
if (word.length() == 0) {
res = true;
} else {
String theWord = word.toUpperCase();
int[] indexes = searchLetter(Character.toString(theWord.charAt(0)), i, j);
if (indexes[0] > -1) {
res = searchWord(theWord.substring(1), indexes[0], indexes[1]);
} else if(countLetter(Character.toString(/*The value that has to be memorized*/), /*index 1 that has been memorized*/, /*index 2 that has been memorized*/) > 1) {
res = searchWord(theWord, i, j);
} else {
res = false;
}
}
return res;
}
注:はい、文字列の方が良いオプションかもしれないので奇妙な文字列を使用しますが、後で変更できます。