狩猎与杀戮迷宫生成器
已出版: 2025年2月16日 UTC 20:57:30
迷宫生成器使用“狩猎与杀戮”算法来创建完美的迷宫。此算法与递归回溯器类似,但生成的迷宫往往没有那么长,而且走廊也更曲折。为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:
Hunt and Kill Maze Generator
Hunt and Kill Maze Generator
Hunt and Kill 算法实际上是递归回溯器的改进版本。改进包括系统地扫描(或“搜索”)新单元以继续执行(当无法继续执行时),而不是真正的递归搜索(它总是返回堆栈中的前一个单元)。
因此,只需选择更频繁地或根据特定规则进入“狩猎”模式,即可轻松调整该算法以生成具有不同外观和感觉的迷宫。此处实现的版本仅在无法从当前单元格进一步前进时才进入“狩猎”模式。
完美迷宫是指从迷宫中的任何一点到其他任何一点都只有一条路径的迷宫。这意味着你不会兜圈子,但你会经常遇到死胡同,不得不掉头回去。
这里生成的迷宫地图包括一个没有起点和终点位置的默认版本,因此您可以自行决定起点和终点位置:从迷宫中的任何一点到其他任何一点都有解法。如果你想获得灵感,可以启用建议的起点和终点位置,甚至可以查看两者之间的解法。
关于“狩猎与杀戮”算法
狩猎和杀戮算法是一种简单但有效的迷宫生成方法。它有点类似于深度优先搜索(即递归回溯算法),不同之处在于,当它无法从当前位置继续前进时,它会系统地扫描(或“狩猎”)迷宫以找到新的单元。该算法由两个主要阶段组成:行走和狩猎。
迷宫生成中的狩猎与杀戮算法是如何运作的
步骤 1:从随机单元格开始
- 在网格中随机找到一个单元格并将其标记为已访问。
第二步:行走阶段(随机行走)
- 随机选择一个未访问的邻居。
- 移动到该邻居,将其标记为已访问,并在前一个单元格和新单元格之间开辟一条路径。
- 重复此操作,直到没有未访问的邻居。
步骤 3:搜寻阶段(通过扫描回溯)
- 逐行(或逐列)扫描网格。
- 找到第一个至少有一个已访问邻居的未访问单元格。
- 将该单元连接到已访问的邻居以恢复行走阶段。
- 重复此操作,直到所有单元格都被访问过。