如果这个工具帮到了你,可以请作者喝杯咖啡 ☕
按尺寸、算法、出口与随机种子生成可复现迷宫,支持最短路径、距离热图、在线试玩和 SVG 下载。
迷宫配置
调整尺寸、算法和出口位置,生成可复现的方格迷宫。
长通道较多、岔路较少,解谜节奏更连贯。
使用相同尺寸、算法、出口方式和种子,可以重新生成完全相同的迷宫。
ostphojl一个 15×15 的方格迷宫可以拥有数百条岔路,但从起点到终点只保留一条不重复的正确通路。页面上方的生成器允许同时控制宽度、高度、算法、出口方式和随机种子,并把生成结果直接用于在线解谜、教学演示或打印练习。
方格迷宫可以看成一张由房间和通道组成的图。每个格子对应一个节点,相邻格子之间的墙决定两个节点是否连通。生成过程先建立全部墙体,再按照算法逐步打通相邻格子,最终得到一棵覆盖所有格子的生成树。这样的结构保证任意两个格子之间都能互相到达,而且正确路线不会形成环路。生成器会在相同输入条件下使用确定性的伪随机序列,因此同一个随机种子会得到相同墙体、起点、终点和最短路径。
| 算法 | 通道特征 | 适合场景 |
|---|---|---|
| 递归回溯 | 长通道明显,连续转弯较少,死路通常较深 | 第一次接触迷宫、追求流畅解谜节奏 |
| 随机 Prim | 短支路与岔口较密集,整体分布均匀 | 观察距离扩散、制作中等难度练习 |
| 随机 Kruskal | 从多个小区域逐步合并,路径分布较平衡 | 打印题、算法课堂和不同结构的对照实验 |
例如尺寸同为 20×20 时,递归回溯常出现贯穿大片区域的长走廊;随机 Prim 更像从多个方向不断长出的分支;随机 Kruskal 的局部结构较为分散。切换算法后可以保留原来的尺寸和种子,对比三种结构在视觉和解谜节奏上的区别。
左右出口会把起点和终点安排在迷宫两侧,上下出口则安排在顶部和底部,这两种模式适合版式明确的练习纸。“最难路径”不是简单增加墙体,而是根据生成后的通路距离寻找相隔更远的端点,使正确路线覆盖更多格子。难度仍会受到算法、尺寸和玩家观察方式影响,因此最短路径步数比画布大小更适合用来比较两个迷宫的实际路线长度。
一个 10×10 迷宫的最短路径可能只有 25 步,也可能超过 50 步。生成结果标题会显示尺寸和最短步数,调整出口方式后可以立即看到路线长度变化。想获得更复杂的题目,可以先提高尺寸,再选择“最难路径”,而不是单纯反复生成相同大小的迷宫。
“显示最短路径”会从起点沿唯一正确通路绘制路线,可用于核对答案、讲解搜索算法或制作带答案的练习材料。“显示距离”则依据每个格子到起点的最短步数着色,颜色变化展示搜索范围如何向外扩散。热图并不代表玩家已经走过的路线,也不会改变墙体;隐藏后迷宫本身保持不变。
教学场景中可以先隐藏答案,请学生手动寻找出口;随后打开最短路径核对,再打开距离热图讨论广度优先搜索如何逐层访问格子。由于迷宫没有环路,每个格子只对应一条从起点出发的路径,距离数值也就具有唯一含义。
点击“开始试玩”后,使用键盘方向键或 WASD 移动当前位置,手机和平板可以点击页面中的方向按钮。状态区记录已走步数和用时,到达终点后会显示完成提示。点击“重新开始”会把玩家送回当前迷宫的起点,不会重新生成墙体;若要换一张题目,应点击“生成新迷宫”。
SVG 下载保存的是矢量图形,放大打印时墙线仍然清晰。下载前显示或隐藏最短路径,可以分别制作答案版和练习版。距离热图适合屏幕分析,打印练习通常建议关闭热图,以免颜色干扰路线判断。文件名包含当前种子,之后可把相同种子重新填入生成器复现原题。
生成逻辑采用图论中的生成树思路,分别实现深度优先搜索式回溯、随机 Prim 和随机 Kruskal。最短路径与距离数据通过迷宫通路上的广度优先搜索计算。功能设计参考了 Selfboot 迷宫页面 的可交互方向,并结合 ToolKK 的分享参数、使用统计、响应式布局和 SVG 导出方式重新实现。现在可以回到上方设置一组尺寸和种子,生成第一张可复现的迷宫。