迷宫生成

Posted 卧龙浪士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迷宫生成相关的知识,希望对你有一定的参考价值。

回溯生成迷宫方法

    1.将起点作为当前迷宫单元并标记为已访问  
    2.当还存在未标记的迷宫单元,进行循环  
        1.如果当前迷宫单元有未被访问过的的相邻的迷宫单元  
            1.随机选择一个未访问的相邻迷宫单元  
            2.将当前迷宫单元入栈  
            3.移除当前迷宫单元与相邻迷宫单元的墙  
            4.标记相邻迷宫单元并用它作为当前迷宫单元  
        2.如果当前迷宫单元不存在未访问的相邻迷宫单元,并且栈不空  
            1.栈顶的迷宫单元出栈  
            2.令其成为当前迷宫单元  

随机普利姆生成迷宫

1.让迷宫全是墙.  
2.选一个单元格作为迷宫的通路,然后把它的邻墙放入列表  
3.当列表里还有墙时  
    1.从列表里随机选一个墙,如果这面墙分隔的两个单元格只有一个单元格被访问过  
        1.那就从列表里移除这面墙,即把墙打通,让未访问的单元格成为迷宫的通路  
        2.把这个格子的墙加入列表  
    2.如果墙两面的单元格都已经被访问过,那就从列表里移除这面墙  

 

以上是关于迷宫生成的主要内容,如果未能解决你的问题,请参考以下文章

canvas——随机生成迷宫

canvas——随机生成迷宫

unity 使用深度优先搜索生成迷宫之二

PHP树生成迷宫及A*自己主动寻路算法

迷宫生成与路径规划算法-Python3.8-附Github代码

迷宫生成与路径规划算法-Python3.8-附Github代码