跳到主要内容
实用工具 · 实用指南

科研迷宫

一个紧凑的 Canvas 实验,包含程序化迷宫生成、键盘和触摸输入、移动轨迹和本地计分。

  • Canvas
  • 键盘 + 触摸
  • 本地计分
打开工具

功能简介

科研迷宫是一个本地 Canvas 实验,它生成一个新的 21 × 21 迷宫,接受键盘或页面内方向控制,绘制玩家轨迹,计时运行,并在当前浏览器中保存最好的十个结果。

本地实验

迷宫、移动、计时器和排行榜在浏览器中运行。分数本地存储,从不提交到在线排行榜。

开始之前

  • 在桌面端,使用方向键之前请先点击玩家名称输入框之外的区域。
  • 在触摸设备上,使用棋盘下方的四个大方向按钮。
  • 如果希望名称与结果一起保存,请在完成之前输入最多 32 个字符的玩家名称。
  • 新的随机迷宫可能比上一个更简单或更难;记录不按迷宫难度归一化。

快速流程

  1. Player(玩家)中输入名称。
  2. 选择 New Game(新游戏)以生成新迷宫并重置当前计时器、步数、轨迹和胜利消息。
  3. 使用键盘方向键或 ▲、▼、◀ 和 ▶ 控件移动。
  4. 沿着开放的白色单元格从左上角起点走到右边缘出口。出口在素材加载时使用汉堡图像,否则使用绿色回退。
  5. 完成后,在胜利消息和 Leaderboard(排行榜)中查看用时和步数。
  6. 选择 New Game 以尝试另一个程序化生成的棋盘。

控件与输出

控件或输出当前行为
Player设置与完成运行一起保存的名称;空名称变为 Player
New Game生成新的 21 × 21 迷宫并重置当前运行。
方向键当焦点不在输入框、按钮、选择框或可编辑元素中时,尝试移动一格。
方向按钮为鼠标和触摸输入提供相同的单格移动。
Steps仅计成功移动;撞墙的尝试不增加计数。
Trail标记之前占据的单元格,最多保留 500 条轨迹记录。
胜利消息报告名称、用时秒数和成功移动次数。
Leaderboard显示最多 10 个本地结果,首先按时间排序,然后按步数排序。

工作原理

每次新游戏在 21 × 21 网格中填充墙壁,并使用随机化递归回溯算法从网格位置 (1, 1) 雕刻连通路径。出口在右边缘打开并连接到雕刻的迷宫。

计时器在第一次方向尝试时启动,包括被墙阻挡的尝试。只有成功移动更新 Steps 和轨迹。到达出口结束运行,将用时四舍五入到两位小数,并将结果插入排序后的本地前十名。

数据、隐私与外部服务

  • 排行榜条目存储在浏览器的 localStorage 中,键名为 mazeRankings
  • 不上传任何名称、分数、移动路径或设备数据。
  • 清除此站点的浏览器存储会移除排行榜。
  • 游戏从本网站加载爱因斯坦玩家和汉堡出口图像;当这些素材加载失败时使用简单的绘制回退。

局限性

  • 移动基于网格。应用不使用设备倾斜、加速度计输入、连续弹珠物理或多人联网。
  • 本地分数特定于浏览器配置文件和设备;它们不会跨浏览器同步。
  • 随机迷宫的路线长度和难度各不相同,因此排行榜时间是非正式的,而非直接受控的实验对比。
  • Canvas 提供简洁的无障碍标签,但不会将每堵墙和路径公开为可导航的屏幕阅读器元素。
  • 没有应用内控件来清除所有已保存排名;如有需要,请清除站点的浏览器存储。

排障

问题应检查什么
方向键无法移动将焦点移出 Player 字段或按钮后重试;在移动设备上使用方向控件。
方向键按下不增加 Steps尝试的单元格是墙;仅有效移动计入。
计时器在第一次有效移动前启动计时从第一次方向尝试开始,即使该尝试被阻挡。
出口图像缺失使用绿色出口回退;游戏玩法不变。
完成的分数未出现浏览器存储可能被阻止或已满,或结果不在最快前十名之内。
想要移除排名在浏览器设置中清除此来源的站点数据。

打开科研迷宫

返回应用实验室