迷宫生成

回溯生成迷宫方法

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

随机普利姆生成迷宫

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

 

posted @ 2017-10-18 15:41  一梦箭心  阅读(318)  评论(0编辑  收藏  举报