0
// Counts the neighbors of alive or dead cells in boolean grid.
public static int countNeighbors (final boolean[][] grid, final int row, final int col) {
// Finds neighbors in top row.
int count = 0;
for (int i = 1; i > -1; --i) {
if (grid[row - 1][col + i] == true)
count += 1;
else if (grid[row - 1][col + i] == false)
count += 0;
}
// Finds neighbors in same row.
for (int i = 1; i > -1; --i) {
if (grid[row][col + i] == true)
count += 1;
else if (grid[row][col + i] == false)
count += 0;
}
// Finds neighbors in bottom row.
for (int i = 1; i > -1; --i) {
if (grid[row + 1][col + i] == true)
count += 1;
else if (grid[row + 1][col + i] == false)
count += 0;
}
return count;
}
当我试图在指定的正方形周围的所有8个块中查找所有真正的邻居值时,获取数组越界。18x18板阵列索引出界
我觉得代码已经可以处理,如果它超出了界限,因为我认为这些值将是错误的。
你的问题是什么?在访问数组之前,只需检查行和列是否在范围内。 – samgak
此代码充满了问题。只是第一个'if'语句('if(grid [row - 1] [col + i] == true)')将导致越界异常。 –
Java数组是基于零的。 –