Miklix

狩猎与杀戮迷宫生成器

已出版: 2025年2月16日 UTC 20:57:30
最后更新 2026年1月12日 UTC 09:05:07

迷宫生成器使用“狩猎与杀戮”算法来创建完美迷宫。该算法类似于递归回溯算法,但生成的迷宫往往走廊较短且弯曲程度较小。

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

Hunt and Kill Maze Generator

Hunt and Kill 算法实际上是递归回溯算法的改进版本。改进之处在于,当无法继续前进时,它会系统地扫描(或“寻找”)新的单元格以继续前进,而不是像真正的递归搜索那样总是返回到栈上的前一个单元格。

因此,只需选择更频繁地进入“搜索”模式或遵循特定规则,即可轻松调整此算法,生成不同外观和风格的迷宫。此处实现的版本仅在无法远离当前单元格时才进入“搜索”模式。

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

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


生成新迷宫








关于猎杀算法

“狩猎与消灭”算法是一种简单而有效的迷宫生成方法。它与深度优先搜索(例如递归回溯算法)有些类似,不同之处在于,当无法从当前位置继续前进时,它会系统地扫描(或“狩猎”)迷宫,寻找新的出发点。该算法包含两个主要阶段:行走和狩猎。

迷宫生成中的猎杀算法工作原理

步骤 1:从一个随机单元格开始

  • 在网格中随机选择一个单元格,并将其标记为已访问。

步骤 2:步行阶段(随机行走)

  • 随机选择一位未拜访过的邻居。
  • 移动到相邻的单元格,将其标记为已访问,并在前一个单元格和新单元格之间开辟一条路径。
  • 重复此步骤,直到所有未拜访的邻居都拜访完毕。

步骤 3:搜索阶段(通过扫描进行回溯)

  • 逐行(或逐列)扫描网格。
  • 找到第一个至少有一个已访问邻居的未访问单元格。
  • 将该单元格与已访问的相邻单元格连接,以恢复行走阶段。
  • 重复以上步骤,直到所有单元格都被访问过。

进一步阅读

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


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

Mikkel Christensen

关于作者

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