我正在研究迷宫解算器,但我在这一行遇到了ArrayOutOfBoundsException:
wasHere[row][col] = false;
我看不出怎么会有这样的错误,因为maze
、wasHere
和correctPath
中表示的宽度和高度(行和列的数量)都是相同的。所有数组显示7列和4行。
private static int[][] maze = {{2, 2, 2, 2, 1, 2, 2}, {2, 2, 2, 2, 1, 2, 2},
{2, 2, 2, 2, 1, 2, 2}, {2, 1, 1, 1, 1, 2, 2}}; // The maze
private static boolean[][] wasHere = new boolean[7][4];
private static boolean[][] correctPath = new boolean[7][4]; // Solution
for (int row = 0; row < maze.length; row++)
{
// Sets boolean arrays to false
for (int col = 0; col < maze[row].length; col++)
{
wasHere[row][col] = false;
correctPath[row][col] = false;
}
}
您将wasHere
定义为7乘4,而maze
是4乘7。尝试访问时会出现错误,例如row = 0
、col = 4
。