迷宫生成器
使用递归分割(recursive division)算法逐步生成迷宫的动画工具——实时查看墙壁的构建过程、调整生成速度、随时生成新迷宫。与寻路算法可视化工具搭配使用效果极佳。完全在浏览器中运行。
Click & drag on the grid to draw walls · drag the green and red squares to move start / goal · then press Play. Want a challenge? Hit 亲自试玩 and solve the maze by hand.
Move the indigo token with ↑ ↓ ← → / WASD (or tap an adjacent cell) from the green start to the red goal. Walls block you.
伪代码
Time · Space
使用方法
- 1 点击 Generate,观看迷宫通过递归分割算法逐步生成。
- 2 使用 Step 一次添加一堵墙,跟踪整个递归过程。
- 3 点击 New maze 生成另一种随机布局。
- 4 调整 Speed 来放慢墙壁的构建速度,便于仔细观察。
为什么使用此工具
- 直观看到递归分割算法如何用一堵只留一个缺口的墙把每个空间分开。
- 生成的每一个迷宫都是「完美」的:任意两个格子之间有且仅有一条路径。
- 与寻路算法可视化工具是绝佳搭档——两者使用相同的方格网格模型。
- 完全在你的浏览器中运行,无需注册,无需上传任何内容。
常见问题
递归分割算法是如何生成迷宫的?
它从一个空白区域开始,然后递归地用一堵带有随机缺口的直墙分割每个空间,如此反复,直到空间小到无法继续分割。
什么是「完美迷宫」?
指任意两个格子之间有且仅有一条路径的迷宫——没有环路,也没有孤立区域。递归分割算法生成的始终是完美迷宫。
我可以求解这个迷宫吗?
可以——把这个布局复制到 BFS、Dijkstra 或 A* 可视化工具中(它们使用相同的方格网格),即可查看寻路算法如何穿过它。
还有哪些其他的迷宫生成算法?
递归回溯(随机化 DFS)、Prim 算法、Kruskal 算法、Wilson 算法和 Eller 算法——每种算法生成的迷宫在视觉结构上都各具特色。
什么是 迷宫生成器?
迷宫生成器使用递归分割(recursive division)方法构建随机迷宫:它不断地用一堵只留一个缺口的墙把每个空间一分为二,如此反复,直到空间小到无法再分为止。最终生成的是一个「完美迷宫」(perfect maze)——任意两个格子之间都有且仅有一条路径。
功能特性
动画生成
观看算法遍历网格时墙壁被逐步打通的过程。
复杂度
时间和空间复杂度均为 O(cells);生成一个完美迷宫(任意两个格子之间路径唯一)。
100% 隐私保护
完全在你的浏览器中运行——不会上传任何数据。
示例
Input
grid size (e.g. 10×10)
Output
a perfect maze — exactly one path between any two cells
常见使用场景
-
1
生成迷宫谜题
创建随机迷宫用于求解或打印。
-
2
测试寻路算法
生成网格以运行 BFS/DFS/A* 算法进行测试。
-
3
学习生成树
了解完美迷宫如何构成网格图的一棵生成树(spanning tree)。
Zerethon 的迷宫生成器可在浏览器中构建一个随机的完美迷宫(perfect maze)——即任意两个格子之间都恰好存在一条唯一路径(没有环路,也没有孤立区域)——使用的算法包括随机化深度优先搜索(randomized depth-first search)。生成过程会遍历每个格子恰好一次,运行时间和空间复杂度均为 O(cells)。
- 分类
- 算法
- 价格
- 免费
- 隐私
- 基于浏览器
- 注册
- 无需
参考资料
隐私
除非另有说明,否则你的数据永远不会离开浏览器。迷宫生成器 完全在客户端运行 — 无需上传服务器,不记录日志,不追踪你输入的内容。
刚接触?阅读包含 Big-O 分析的分步讲解: 了解 Graph Algorithms →
在 Zerethon Social 上创作、分享与成长
免费注册。赚取积分,收集成就,与全球创作者建立联系。