迷宫算法

深度优先算法的核心是(翻译的维基):
1、将起点作为当前格并标记
2、当还存在未标记的格时
——1、如果当前格有未标记的邻格
————1、随机选择一个未标记的邻格
————2、将当前格入栈
————3、移除当前格与邻格的墙
————4、标记邻格并用它作为当前格
——2、反之,如果栈不空
————1、栈顶的格子出栈
————2、令其成为当前格
——3、反之,随机选择一个格子为当前格并标记

通俗的说,就是从起点开始随机走,走不通了就原路返回,从下一个能走的地方再开始随机走。

随机prim算法的核心是(翻译的维基):
1、让迷宫全是墙
2、选一个格作为迷宫的通路,然后把它的邻墙放入列表
3、当列表里还有墙时
——1、从列表里随机选一个墙,如果它对面的格子不是迷宫的通路
————1、把墙打通,让对面的格子成为迷宫的通路
————2、把那个格子的邻墙加入列表
——2、如果对面的格子已经是通路了,那就从列表里移除这面墙

通俗的说,就是在所有可以走的地方上随机挖洞,创造出新的可以走的地方。

参考链接:

https://en.wikipedia.org/wiki/Maze_generation_algorithm

https://en.wikipedia.org/wiki/Talk:Maze_generation_algorithm

原文地址:https://www.cnblogs.com/energy1010/p/6919225.html