私はBoggleのゲームに取り組んでおり、 "単語"が "グリッド"で見つかると真を返すfindWordというメソッドを作成しています。戻り値falseの場合、privateメンバー変数gridに文字グリッドがあります。しかし、私は私の主な方法を実行すると、それは "見つからない"という印字を保ち、私はどこで間違いをしたのか分かりませんでした!これは私が見単語の文字グリッドを見つける
public class BoggleGame_old {
LetterGrid grid;
private char[][]board;
boolean[][] visited;
public BoggleGame_old(LetterGrid g)
{
grid = g;
}
public boolean findWord(String word) {
for(int row=0;row<this.board.length;row++){
for(int col=0;col<this.board.length;col++){
if(this.find(word, row, col)){
return true;
}
}
}
return false;
}
//helping function
private boolean find(String word, int row, int col){
if(word.equals(""))
{
return true;
}
else if(row<0||row>=this.board.length||
col<0||col>=this.board.length||
this.board[row][col] != word.charAt(0))
{
return false;
}
else{
char c=this.board[row][col];
this.board[row][col]='*';
String curr=word.substring(1,word.length());
boolean res=this.find(curr, row-1, col-1)||
this.find(curr, row-1, col)||
this.find(curr, row-1, col+1)||
this.find(curr, row, col-1)||
this.find(curr, row, col+1)||
this.find(curr, row+1, col-1)||
this.find(curr, row+1, col)||
this.find(curr, row+1, col);
this.board[row][col]=c;
return res;
}
}
内側のforループである必要があり、あなたの中に条件 'COL
Gendarme
補助機能の第2、第2または条件と同じです(許可された例外のみですが、良い方法ではありません:ボードのサイズが正方形であることが保証されている場合)。 – Aconcagua