码迷,mamicode.com
首页 > 编程语言 > 详细

迷宫算法

时间:2017-05-29 23:26:47      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:随机选择   翻译   存在   algo   prim   起点   算法   gen   org   

深度优先算法的核心是(翻译的维基):
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

迷宫算法

标签:随机选择   翻译   存在   algo   prim   起点   算法   gen   org   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!