【发布时间】:2013-11-06 17:53:33
【问题描述】:
我使用深度优先搜索创建了一个迷宫生成器,它返回一个磅和空格数组来指示迷宫。示例:
char maze[height][width] =
{
"#########",
"# # #",
"# ### # #",
"# # # #",
"# # # ###",
"# # # #",
"# ### # #",
"# # #",
"#########",
};
代理将始终从左上角 (maze[1][1]) 开始并从右下角 (maze[7][7]) 退出。
我正在尝试使用深度优先搜索来制作求解器。
问题是我是一个初学者到中级程序员,所以我很难理解如何在 C++ 中实现深度优先搜索,而且我在迷宫中实现它的难度更大。
我对堆栈、队列等有基本的了解。我也知道 DFS 在树中是如何工作的(理论上差不多),但我的主要问题是如何在存储在 2D 中的迷宫中实现它数组。
我想专门学习 DFS,这样我就可以开始了,然后我将实施其他搜索策略(例如 BFS)来开始接触 AI。
编辑:我不想要现成的代码!!!我希望您帮助我了解如何将伪代码转换为 C++ 进行迷宫!
【问题讨论】:
-
什么?不!我想知道如何在 C++ 上使用这个,因为我很困惑!
-
是的,但这基本上就是您要说的...我的意思是,您只是列出了您的要求并说“请帮忙”。
-
“所以我很难理解如何在 C++ 中实现深度优先搜索” 我需要帮助来理解如何实现它。我不希望其他人为我实现它。
-
嗯,你有没有尝试过任何东西?我的意思是,谷歌搜索“dfs”并不难
-
@ᴋᴇʏsᴇʀ 我已经很清楚如何表示代理的位置,如何移动他等等,但我的问题主要是如何使用堆栈来跟踪哪个位置代理已经。根据我在谷歌中的发现,有些人保留了一堆访问过的地方,但我从来没有真正理解什么时候从堆栈中删除位置,这是我最大的困惑
标签: c++ arrays artificial-intelligence depth-first-search maze