首页 / 知识
生成迷宫的好算法是什么?
2023-04-13 20:53:00
What's a good algorithm to generate a maze?假设您要在N x M网格上创建一个简单的迷宫,该迷宫有一条路径,并且有很多死角,但是看起来"正确"(即像有人手工制作的那样,没有太多微小的死角,所有这些 )。 有已知的方法吗? 事实证明,有12种经典算法可生成"完美"迷宫。如果迷宫只有一个解决方案,那么它是完美的。以下是我偏好的大致顺序,每种算法都有一些链接。 有关更多信息,请查看GitHub上的mazelib,这是一个实现所有标准迷宫生成/求解算法的Python库。 来自http://www.astrolog.org/labyrnth/algrithm.htm
他们只产生10%的死角
是通过该方法生成的迷宫的示例。 一个非常简单的解决方案是将随机权重分配给图边缘,然后应用Kruskal算法查找最小生成树。 关于迷宫生成算法的最佳讨论:http://www.jamisbuck.org/presentations/rubyconf2011/index.html(几天前在HN上)。 奇怪的是,通过稍微更改"规范"规则并从随机配置开始,Conway的《生命游戏》似乎产生了相当不错的迷宫! (我不记得确切的规则,但这是一个非常简单的修改,倾向于"致密化"细胞群……) 我最喜欢的方法是使用Kruskal算法,但是当随机选择并删除边缘时,请根据其连接到的边缘类型对选择权重。 通过改变不同边缘类型的权重,可以生成具有许多独特特征或"个性"的迷宫。在这里查看我的示例: https://mtimmerm.github.io/webStuff/maze.html 生成迷宫的方法之一是Prim算法的随机版本。
从充满墙壁的网格开始。 从列表中选择一个随机的墙。如果对面的单元格还不在迷宫中: (i)使墙壁成为一个通道,并在另一侧标记牢房作为迷宫的一部分。 (ii)将单元格的相邻墙添加到墙列表中。 如果另一侧的牢房已经在迷宫中,请从列表中移除墙。 欲了解更多信息,请点击这里 这是用伪代码编写的DFS算法:
创建一个CellStack(LIFO)来保存单元位置列表
而VisitedCells |
最新内容
相关内容
linux改变命令的路径?
linux改变命令的路径?,数字,第一,目录,工作,一致,名称,系统,命令,文件夹,代表,linux下怎么修改文件夹目录1、linux修改php.ini路径的方法:首先linux多路径查看命令?
linux多路径查看命令?,设备,软件,网络,工具,系统,情况,下降,公司,名称,大幅,如何使用multipathdevice-mapper-multipath:即multipath-tools。主linux路径命令解释?
linux路径命令解释?,系统,信息,设备,数据,工具,命令,文件,标准,发行,时间,linux查看路径命令1、linux命令如果记不得,可以使用man命令来查看某linux相对路径和命令?
linux相对路径和命令?,地址,工作,信息,数据,系统,命令,文件,目录,时间,路径,linux常用的命令有哪些1、linux系统常用操作命令如下:ls:全拼list,功linux显示路径命令?
linux显示路径命令?,系统,信息,工作,数据,名称,位置,标准,环境,时间,命令,linux如何查看root用户目录路径?1、建目录时,不指定绝对路径时,可以用linux拷贝路径命令行?
linux拷贝路径命令行?,系统,文件,命令,目录,名称,源文件,文件夹,目标,路径,选项,Linux下如何使用cp命令复制文件及复制目录1、处在当前目录复linux路径截取命令?
linux路径截取命令?,标准,图片,命令,环境,工具,信息,软件,系统,文件,目录,Linux命令行操作一个文件,通过管道进行字符串截取,该如何操作?1、管linux挂载命令路径?
linux挂载命令路径?,服务,信息,系统,电脑,情况,工具,网络,命令,磁盘,目录,Linux上挂载windows共享目录(1)设置Windows下的共享文件夹 对你要共享linux命令文件路径?
linux命令文件路径?,地址,系统,工作,命令,位置,管理,信息,软件,工具,图片,linux基本操作命令linux常用命令有pwd命令、cd命令、ls命令、cat命linux下命令寻找路径?
linux下命令寻找路径?,系统,名称,信息,命令,文件,数据,标准,位置,工作,管理,linux查找文件路径的命令,Linux查找文件路径列出文件清单命令,ls。linux访问路径命令?
linux访问路径命令?,工作,系统,名称,地址,信息,命令,工具,名字,目录,文件,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许您linux查看路径命令行?
linux查看路径命令行?,系统,命令,工作,信息,数据,位置,路径,文件,标准,名称,linux如何查看root用户目录路径?建目录时,不指定绝对路径时,可以用p