【发布时间】:2023-04-15 09:02:01
【问题描述】:
我想实现递归回溯算法来解决迷宫问题,但我无法理解 2.3 命令(“移除当前单元格和所选单元格之间的墙”)对我有帮助吗?
- 将当前单元格标记为“已访问”
- 如果当前单元格有没有被访问过的邻居
- 随机选择未访问的邻居之一
- 将当前单元格添加到堆栈中
- 移除当前单元格和所选单元格之间的墙
- 将所选单元格设为当前单元格
- 递归调用此函数
- 其他
- 从堆栈中移除最后一个当前单元
- 回溯到该函数的上一次执行
编辑 其实我想要一个算法来用栈来解决迷宫问题。
【问题讨论】:
-
你从哪里得到这个算法的?想必这是解决“现实世界”式迷宫的尝试吧!移除一堵墙会改变迷宫,因此使“迷宫解决”算法有些无用。也没有其他“把墙放回去”的指令。
-
啊所以这是一个迷宫生成算法而不是迷宫求解器。我从您的问题中得到的印象是,这是解决现有迷宫的尝试。
-
我真的想找到通往目的地的最佳方式。你认为这是一个合适的算法吗?
-
dev - 你需要一个迷宫求解算法,例如en.wikipedia.org/wiki/Maze_solving_algorithm