プロジェクト用にシンプルな(標準の)掃海艇を作成する必要があります。2次元配列のランダム(または特定の)要素の周囲の要素を確認したいと思います。
私はそのような配列を持っているとしましょう
boolean board[5][5]
の周辺要素をチェックしたい
board[0][0]
私はそれを書いた:
public int numberChecker(int h, int w) {
int checker = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int he = h - 1 + i;
int wi = w - 1 + i; <---- this i should be j that was the issue
if (board.getHeight() > he && he >= 0
&& wi >= 0 && board.getWidth() > wi) {
if (boomChecker(he, wi)) {
if (w != (wi) && h != (he)) {
checker++;
}
}
}
}
}
return checker;
}
問題は、 「\」の方法しかチェックしないと思うことです(言葉で表現する方法がわかりません)
元:
(出力#はカバーされていない数字が周囲の地雷を意味することを意味します)
4-2を明らかにする
######
######
0#####
#0####
##0### <-- unlocking this one
###0##
また
0-0を明らかにする
0#####
#0####
##0###
###### <-- there is a mine at check spot
######
######
コード自体は重要ではありません(自分自身を説明するのが少し複雑になったのはわかっています)
必要なのは、ループ(または何か)のチェックを取り巻く作業だけです。
前もって感謝します
問題は単純な愚かな間違いを解決しましたinthe= h --1 + i; int wi = w --1 + i; <---私はjに感謝する必要があります