【发布时间】:2023-04-10 03:01:01
【问题描述】:
所以,我正在计算附近地雷的数量,假设所选地点没有地雷,这就是我想出的:
public static int numNearbyMines( boolean [][]mines, int row, int col) {
int nearbyMines = 0;
if (mines[row - 1][col] == true) { nearbyMines += 1; }
if (mines[row - 1][col - 1] == true) { nearbyMines += 1; }
if (mines[row - 1][col + 1] == true) { nearbyMines += 1; }
if (mines[row][col + 1] == true) { nearbyMines += 1; }
if (mines[row][col - 1] == true) { nearbyMines += 1; }
if (mines[row + 1][col] == true) { nearbyMines += 1; }
if (mines[row + 1][col - 1] == true) { nearbyMines += 1; }
if (mines[row + 1][col + 1] == true) { nearbyMines += 1; }
return nearbyMines;
}
但是,我意识到这种方法行不通,因为如果我选择角落等地方,它将在数组之外“读取”,因此无法正常工作。我将如何更改它,以便即使我选择了一个角落,它也只会在数组内部读取?
【问题讨论】:
-
您需要检查地址(如 [row-1][col])是否有效(在范围内)。这种检查最好在方法中完成。
标签: java minesweeper