私の塗りつぶし方法:catch (ArrayIndexOutOfBoundsException ignored) {}
は、アレイの外に行くから、xおよび/またはy位置を避けるためにそこにあるシンプル塗りつぶし方法はStackOverflowのエラーが発生し
public void fillNeighbours(int x, int y) {
for(int i = -1; i < 2; i++) {
for(int j = -1; j < 2; j++) {
try {
visible[x+i][y+j] = true;
if(num[x+i][y+j] == 0) {
fillNeighbours(x+i, y+j);
}
} catch (ArrayIndexOutOfBoundsException ignored) {}
}
}
}
こと。配列のサイズは30で30です。私は地雷のようなゲームを作っています。だから、なぜこの方法が必要なのか、それがどう動くべきかを知っているかもしれません。もしあなたが魚雷が何であるのか分からなければ、そのゲームに関するビデオは以下のようになります。Introduction to minesweeper
のようなものを試してみてください。 –
1.境界を計算し、arrayIndexOutofBoundsExceptionsを使用しないでください! 2.コードスニペットから、ループを終了させるものは見えません。 fillNeighboursを呼び出し続けます。あなたのnum [x + i] [y + j]が0以外の値に変更されているかどうかを確認してください。 –