Miklix

狩猎与杀戮迷宫生成器

已出版: 2025年2月16日 UTC 20:57:30

迷宫生成器使用“狩猎与杀戮”算法来创建完美的迷宫。此算法与递归回溯器类似,但生成的迷宫往往没有那么长,而且走廊也更曲折。

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

Hunt and Kill Maze Generator

Hunt and Kill 算法实际上是递归回溯器的改进版本。改进包括系统地扫描(或“搜索”)新单元以继续执行(当无法继续执行时),而不是真正的递归搜索(它总是返回堆栈中的前一个单元)。

因此,只需选择更频繁地或根据特定规则进入“狩猎”模式,即可轻松调整该算法以生成具有不同外观和感觉的迷宫。此处实现的版本仅在无法从当前单元格进一步前进时才进入“狩猎”模式。

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

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


生成新迷宫








关于“狩猎与杀戮”算法

狩猎和杀戮算法是一种简单但有效的迷宫生成方法。它有点类似于深度优先搜索(即递归回溯算法),不同之处在于,当它无法从当前位置继续前进时,它会系统地扫描(或“狩猎”)迷宫以找到新的单元。该算法由两个主要阶段组成:行走和狩猎。

迷宫生成中的狩猎与杀戮算法是如何运作的

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

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

第二步:行走阶段(随机行走)

  • 随机选择一个未访问的邻居。
  • 移动到该邻居,将其标记为已访问,并在前一个单元格和新单元格之间开辟一条路径。
  • 重复此操作,直到没有未访问的邻居。

步骤 3:搜寻阶段(通过扫描回溯)

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

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

米克尔·邦·克里斯滕森

关于作者

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