Java マインスイーパ ゲーム用にこのメソッドを作成しました。このメソッドは、一連の座標を囲むスポットをチェックし、近くにある爆弾の数を計算することになっています。
public void numberMines(){
int count = 0;
int x = 0;
int y = 0;
int xMin = x-1;
int xMax = x+1;
int yMin = y-1;
int yMax = y+1;
if (x == 0){
xMin = 0;
}
if (y == 0){
yMin = 0; //these restrictions take care of the spots in the edges
}
if (x == rows){
xMax = rows;
}
if (y == columns){
yMax = columns;
}
//first 2 loops go through every spot on the board
for (x=0; x<rows; x++){
for (y=0; y<columns; y++){
//if the spot selected is not a bomb, for loops check spaces surrounding it
if (mineBoard[x][y] != bomb){
for (int i = xMin; i <=xMax; i++){
for (int j = yMin; j <=yMax; j++){
if (mineBoard[i][j] == bomb){
count++;
}
}
}
}
if (count > 0){ //converts them characters
mineBoard[x][y] = (char)(count + '0');
count = 0;
}
}
}
}
このメソッドを実行するたびに、3、2、1、または空が返されるため、周りにある爆弾の数がカウントされますが、何らかの理由で、最初の後に爆弾ではないすべてのスポットに対してループして同じものを返します1。どこを間違えたのか本当にわかりません、助けてください!