gpt4 book ai didi

c# - 迷宫算法路径查找器

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:25:38 25 4
gpt4 key购买 nike

我试图找到迷宫的路径,下面是代码,它应该进入 recursiveSolve 循环但它一直退出,在第二次 if 条件之后我做错了什么有人可以帮助我吗?我默认将 Washere 和 correctpath 数组设置为 false。

recursiveSolve(0, 0);

public static int[,] maze = {{0, 0, 0, 0, 0, 1},
{1, 1, 0, 0, 0, 1},
{0, 0, 0, 1, 0, 0},
{0, 1, 1, 0, 0, 1},
{0, 1, 0, 0, 1, 0},
{0, 1, 0, 0, 0, 1}};

public static Boolean recursiveSolve(int row, int col) {
Boolean[,] wasHere = new Boolean[6, 6];
Boolean[,] correctPath = new Boolean[6, 6]; // The solution to the maze

if (maze[row, col] == 1 || wasHere[row, col]) {
return false;
}
else if (row == 0 || row == 6 - 1 || col == 0 || col ==6 - 1) {
correctPath[row, col] = true;
return true;
}
else {
wasHere[row, col] = true;
if (recursiveSolve(row - 1, col) || recursiveSolve(row + 1, col) ||
recursiveSolve(row, col - 1) ||
recursiveSolve(row, col +1)) {
correctPath[row, col] = true;
return true; // successfully escaped; this square is on path
}
else {
return false;
}
}
}

最佳答案

您的 wasHere 和 correctPath 数组是 recursiveSolve 函数的本地数组,这意味着每次您输入此函数时,数组都将初始化为 false(或随机值)。

首先尝试使这些数组也成为静态的,看看这是否解决了您始终为 false 的问题。

此外,您应该从迷宫内部的某处开始搜索,而不是从边缘开始(0,0 表示您已经退出迷宫)。如果您想从 0,0 开始,请将其标记为起点,并且不允许将其作为有效解决方案。

关于c# - 迷宫算法路径查找器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257101/

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