迷宫逃脱游戏

用方向键、WASD或屏幕按钮移动角色,找到每次都会重新生成的迷宫出口。逃出后,游戏会把你的步数和最短路线做对比。

移动次数: 0时间: 0秒

用方向键、WASD或上方按钮移动。计时从第一步开始,走过的格子会显示浅色。

玩法

左上角的绿色格子是起点,右下角的红色格子是出口,蓝色圆点就是你的角色。用方向键、W・A・S・D键或屏幕上的四个按钮,每次移动一格。朝着有墙的方向按键时只会发出低沉的提示音,角色不动,移动次数也不增加。移动次数只统计真正换格的步数,所以走进死胡同再退出来,每一格都要算两次。 计时从你迈出第一步时才开始,而不是迷宫出现的那一刻,所以观察全局的时间不计入成绩。到达出口后计时停止,走过的格子会保留浅蓝色,方便看出哪些分支已经试过。 切换难度或点击"新迷宫"会立刻生成新的迷宫并重置记录。成绩不会保存,也不会向服务器发送任何信息。

各难度的迷宫规格

三个难度的区别只是正方形网格的边长格数。下表根据游戏代码使用的格数和格子大小计算得出。通道数量由迷宫"所有格子相连且没有环路"的结构决定:N个格子组成无环的连通结构时,连接恰好是N−1条。剩下的内部墙数量,等于格子之间的边界总数2n(n−1)减去已打通的通道,即(n−1)²。

难度网格格数已打通的通道剩余内部墙画布(px)
简单11×11121120100352×352
普通17×17289288256408×408
困难23×23529528484460×460

最短步数参考表

起点和出口总在对角两端,所以即使一堵墙都没有,也至少要走2(n−1)步。真实的迷宫弯弯曲曲,最短路线要长得多。表中"模拟"的几列是依赖随机数的值:对每种尺寸运行本页的生成方法3,000次,每次测出最短步数后取整得到。你玩到的每个迷宫都不同,重新模拟一次数值也会略有变化。最低10%、中位数、最高10%是把3,000个结果从小到大排列后对应位置的值。

难度理论下限模拟最小值最低10%中位数最高10%沿墙走最大值
简单2020325278240
普通324068112164576
困难44601121902741056

"沿墙走最大值"不是实测值,而是上限。在没有环路的迷宫里,一直扶着墙走的方法每条通道最多来回各走一次,因此不会超过2×(格数−1)步。通关后,游戏会把这个迷宫的真实最短步数和你的步数一起显示。

移动效率与验算示例

移动效率是最短步数 ÷ 你的步数 × 100(%)。100%表示一步冤枉路都没走。因为除以的是每个迷宫自己的最短步数,所以不同迷宫之间也能公平比较,不会把碰巧遇到的短迷宫误当成自己的实力。

迷宫如何生成,最短步数如何计算

生成方式是广为人知的深度优先回溯法,用循环和栈实现,而不是递归。开始时所有格子四面都有墙。程序把起点标为已访问,随机选一个尚未访问的相邻格子,拆掉两者之间的墙并走过去;没有可去的地方时就沿栈回退,换个方向再试;栈空了就说明所有格子都访问过。随机选择使用浏览器的Math.random,它不是加密级随机数,不能用于需要安全性的场合。

结果是所有格子相连且没有环路的"完美迷宫"。任意两格之间恰好只有一条路,所以不会出现无法到达出口的迷宫。这种方法生成的迷宫通常通道又长又弯、岔路相对较少,这与上表中"普通"难度的最短步数中位数达到理论下限三倍以上相符。

通关后显示的最短步数,是迷宫生成之后立即用广度优先搜索算出的:从起点出发,按距离由近到远访问格子,不穿墙,记录每个格子的距离,出口处记录的距离就是最短步数。计算量与格子数成正比,因此即使是529格的"困难"迷宫也瞬间完成。

逃出迷宫的技巧

操作与显示说明

方向键和WASD由游戏接管,因此游戏中页面不会滚动,难度下拉菜单的值也不会被方向键改变。选好难度后,菜单会自动释放焦点,可以直接用键盘移动。带Ctrl、Alt或Command的快捷键不受影响。手机上请使用棋盘下方的四个按钮。画布会随屏幕宽度缩小,但内部分辨率不变;不过"困难"难度的画布是460px的正方形,在小屏幕上线条会显得较细。

提升成绩的思路

同一难度多玩几次,关注效率(%)的变化,而不是单纯的步数。100%只有在移动前就看清全部路线时才会出现,所以刚开始把目标定在50%到70%就足够了。用时会受输入速度和设备影响,只作为辅助指标。"困难"难度的棋盘太大,很难一眼看全,每经过一个岔路就对照浅蓝色足迹确认一下,会更稳妥。

常见问题

迷宫里有多条路线吗?

没有。用这种方法生成的迷宫是"完美迷宫",任意两点之间恰好只有一条路。岔路很多,但没有环路,所以不存在绕开障碍的另一条路,遇到死胡同必须退回来。

撞墙会增加移动次数吗?

不会。朝墙按键只会发出声音,只有角色真正换了格子才会计数。

计时从什么时候开始?

从第一步开始,而不是迷宫出现的时候,所以观察迷宫的时间不计入。到达出口后停止,并显示到小数点后一位。

手机上能玩吗?

可以。点按棋盘下方的方向按钮,每点一次前进一格,没有键盘也能玩。

能重玩同一个迷宫吗?

不能。迷宫每次随机生成且不会保存,同样的形状不会再次出现。刷新页面或切换难度后,当前迷宫就会消失。

更多益智游戏