迷宮算法
阿新 • • 發佈:2017-05-30
dash 打通 深度 所有 開始 移除 隨機 nbsp tro ————2、令其成為當前格
——3、反之,隨機選擇一個格子為當前格並標記
通俗的說,就是從起點開始隨機走,走不通了就原路返回,從下一個能走的地方再開始隨機走。 ——2、如果對面的格子已經是通路了,那就從列表裏移除這面墻
通俗的說,就是在所有可以走的地方上隨機挖洞,創造出新的可以走的地方。
深度優先算法的核心是(翻譯的維基):
1、將起點作為當前格並標記
2、當還存在未標記的格時
——1、如果當前格有未標記的鄰格
————1、隨機選擇一個未標記的鄰格
————2、將當前格入棧
————3、移除當前格與鄰格的墻
————4、標記鄰格並用它作為當前格
——2、反之,如果棧不空
————1、棧頂的格子出棧
——3、反之,隨機選擇一個格子為當前格並標記
通俗的說,就是從起點開始隨機走,走不通了就原路返回,從下一個能走的地方再開始隨機走。
隨機prim算法的核心是(翻譯的維基):
1、讓迷宮全是墻
2、選一個格作為迷宮的通路,然後把它的鄰墻放入列表
3、當列表裏還有墻時
——1、從列表裏隨機選一個墻,如果它對面的格子不是迷宮的通路
————1、把墻打通,讓對面的格子成為迷宮的通路
————2、把那個格子的鄰墻加入列表
通俗的說,就是在所有可以走的地方上隨機挖洞,創造出新的可以走的地方。
參考鏈接:
https://en.wikipedia.org/wiki/Maze_generation_algorithm
https://en.wikipedia.org/wiki/Talk:Maze_generation_algorithm
迷宮算法