gpt4 book ai didi

java - 行列迷宫递归错误

转载 作者:行者123 更新时间:2023-12-02 06:30:28 25 4
gpt4 key购买 nike

我得到的代码包含构建迷宫所需的一切。我的工作是写makeMove用于解决迷宫问题的方法。这是我到目前为止所拥有的:

protected void makeMove( int row, int col )
{
int MAX_ROWS = maze.length;
int MAX_COLS = maze.length;
boolean found = false;
boolean[][]visited = new boolean[MAX_ROWS][MAX_COLS];
//visited[startRow][startCol] = true;
if (row < 0 || row >= MAX_ROWS || col < 0 || col >= MAX_COLS || visited[row][col] || maze[row][col] == 1)
return;

visited[row][col] = true;
found = row == endRow && col == endCol;

/*if(row == endRow && col == endCol) {
found = true;
}*/
if(!found && maze[row][col - 1]!=1 && !visited[row][col]) { // move left
makeMove(row, col -1);
visited[row][col -1] = true;
}
if(!found && maze[row - 1][col]!=1 && !visited[row-1][col]) { // move up
makeMove(row-1, col);
visited[row-1][col] = true;
}
if(!found && maze[row][col + 1]!=1 && !visited[row][col + 1]) { // move right
makeMove(row, col + 1);
visited[row][col + 1] = true;
}
if(!found && maze[row + 1][col]!=1 && !visited[row + 1][col]) { // move down
makeMove(row + 1, col);
visited[row + 1][col] = true;
}

当在 8 行 8 列的迷宫中像这样运行时,我不断收到堆栈溢出错误。

我相信错误显示它位于第 42 行和第 50 行,这将是
42. MakeMove(row-1, col); //to move up
50.makeMove(row + 1, col); //to move down .

我在这两个方面犯了逻辑错误吗?

最佳答案

您应该将迷宫的当前状态作为 makeMove 方法的参数。您的情况下迷宫的状态是访问的矩阵。

关于java - 行列迷宫递归错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20106628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com