Miklix

威尔逊算法迷宫生成器

已出版: 2025年2月16日 UTC 19:34:51
最后更新 2026年1月12日 UTC 09:03:27

迷宫生成器使用威尔逊算法生成完美迷宫。该算法以相同的概率生成给定大小的所有可能迷宫,因此理论上可以生成多种混合布局的迷宫。但由于短走廊的迷宫比长走廊的迷宫更多,所以你更常看到短走廊的迷宫。

为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:

Wilson's Algorithm Maze Generator

威尔逊算法是一种循环消除随机游走方法,它生成均匀生成树用于迷宫生成。这意味着给定大小的所有可能迷宫的生成概率均等,因此它是一种无偏的迷宫生成技术。威尔逊算法可以看作是奥尔德斯-布罗德算法的改进版本,因为它生成的迷宫具有相同的特征,但运行速度更快,所以我在这里没有实现奥尔德斯-布罗德算法。

完美迷宫是指从迷宫中的任何一点到其他任何一点都只有一条路径的迷宫。这意味着你不会兜圈子,但你会经常遇到死胡同,不得不掉头回去。

这里生成的迷宫地图包括一个没有起点和终点位置的默认版本,因此您可以自行决定起点和终点位置:从迷宫中的任何一点到其他任何一点都有解法。如果你想获得灵感,可以启用建议的起点和终点位置,甚至可以查看两者之间的解法。


生成新迷宫








关于威尔逊算法

威尔逊算法(Wilson's algorithm)是一种利用循环消除随机墙生成均匀生成树的算法,由大卫·布鲁斯·威尔逊(David Bruce Wilson)创建。

威尔逊最初于 1996 年在研究概率论中的随机生成树和马尔可夫链时提出了这种算法。尽管他的研究主要集中在数学和统计物理领域,但由于该算法能够生成完全均匀的迷宫,因此已被广泛应用于迷宫生成。

威尔逊算法如何生成迷宫

威尔逊算法通过使用随机游走,从未访问的单元格中迭代地开辟路径,从而确保最终的迷宫完全连通且没有任何回路。

步骤 1:初始化

  • 首先画一个布满墙壁的网格。
  • 定义所有可能的通道单元格列表。

步骤 2:选择一个随机起始单元格

  • 随机选择一个单元格并将其标记为已访问。这将作为迷宫生成过程中的起点。

步骤 3:带循环消除的随机游走

  • 选择一个未访问过的单元格,开始随机游走(向随机方向移动)。
  • 如果路径到达已访问过的单元格,则删除路径中的任何循环。
  • 一旦路径连接到已访问区域,则将路径上的所有单元格标记为已访问。

步骤 4:重复此步骤直至访问所有细胞:

  • 继续选择未访问过的单元格并进行随机游走,直到每个单元格都成为迷宫的一部分。

进一步阅读

如果您喜欢这篇文章,您可能还会喜欢这些建议:


分享至 Bluesky在 Facebook 上分享在 LinkedIn 上分享在 Tumblr 上分享分享至 X在 LinkedIn 上分享在Pinterest上固定

Mikkel Christensen

关于作者

Mikkel Christensen
迈克尔 是 miklix.com 的创建者和所有者。他拥有 20 多年的专业计算机程序员/软件开发人员经验,目前全职受雇于一家大型欧洲 IT 公司。不写博客时,他把业余时间花在各种兴趣、爱好和活动上,这在一定程度上反映在本网站涵盖的各种主题上。