Botbright: 一款编程游戏。

🇬🇧 English · 🇪🇸 Español · 🇫🇷 Français · 🇩🇪 Deutsch · 🇮🇹 Italiano · 🇵🇹 Português · 🇷🇺 Русский · 🇨🇳 中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇮🇳 हिन्दी · 🇧🇩 বাংলা · 🇻🇳 Tiếng Việt · 🇸🇦 العربية · 🇹🇭 ไทย · 🇳🇴 Norsk · 🇳🇱 Nederlands · 🇸🇪 Svenska · 🇹🇷 Türkçe · 🇰🇪 Kiswahili · 🇮🇩 Bahasa Indonesia · 🇵🇱 Polski · 🇬🇷 Ελληνικά · 🇮🇱 עברית · 🇵🇭 Filipino · 🇨🇿 Čeština · 🇩🇰 Dansk · 🇫🇮 Suomi · 🇷🇴 Română · 🇭🇺 Magyar · 🇭🇷 Hrvatski


Botbright 是一个单文件的 JavaScript 克隆版 Flash 解谜游戏 Lightbot。给等距视角的机器人编程,让它在 3D 方块网格上行走并点亮蓝色目标方块。把指令方块拖入机器人的内存,按下 运行,看着你的程序执行。

整个游戏就是一个 HTML 文件(botbright.html),包含内联的 CSS 和 JavaScript —— 无需构建、无外部依赖、无网络请求。在任何现代浏览器中打开即可游玩。把它保存到硬盘上,永久离线可用。

你还可以更改配色方案,给机器人戴上不同的帽子。游戏内置关卡编辑器,关卡和帽子都可以以 JSON 格式导入或导出。

开始游玩

只需双击 botbright.html 文件,或在浏览器中打开它。游戏可离线运行。

在线版本: https://inventwithpython.com/botbright/

玩法说明

机器人有三个内存区:

  • 主内存 — 12 个指令槽,按下运行时执行
  • F1 内存 — 8 个指令槽,可调用的函数
  • F2 内存 — 8 个指令槽,第二个可调用的函数

把指令方块从调色板拖入内存。在槽位之间拖动可重新排序。把方块拖出槽位可删除它。

指令 作用
前进 如果前方方块同高,就走上去
左转 逆时针旋转 90°
右转 顺时针旋转 90°
跳跃 向上跳一格,或向下跳任意格
点亮 切换机器人脚下的目标方块
调用 F1 / F2 把该函数压入调用栈(允许递归,有上限)

当每个目标方块都亮成黄色时,关卡完成。

运行时间过长的程序会被终止:总指令最多 1000 条,调用栈最多 100 帧。

控制

相机 —— WASD 或方向键平移,Q/E 或 PageUp/PageDown 旋转 90°,+/− 或鼠标滚轮缩放。按 0 键重置视图。在画布上拖动可平移,捏合可缩放,双指扭转可旋转。长按屏幕上的相机按钮可实现平滑的连续移动。

侧边栏宽度 —— 拖动画布与侧边栏之间的分隔条。

速度 —— 侧边栏中的滑块:慢 / 正常 / 快。运行中也可调节。

关卡编辑器

游戏自带完整编辑器。添加/复制/删除关卡,调整网格大小(每个维度 1–32),绘制 0–9 的高度,标记目标方块,设置起始位置和朝向,并可在编辑器内试玩。

整套关卡可以导出为 JSON,并以相同方式导入,方便分享关卡或备份编辑。

帽子编辑器

机器人可以戴帽子。内置十九种选项:无、礼帽、巫师帽、王冠、针织帽、棒球帽、牛仔帽、派对帽、圆顶硬礼帽、光环、恶魔角、墨西哥草帽、女巫帽、土耳其毡帽、鹿角、兔耳朵、猫耳朵、潜水头盔和维京头盔。每顶帽子由四个 SVG 精灵定义 —— 每个屏幕方向一个 —— 因此帽子会随机器人方向在任意相机旋转下保持一致(棒球帽帽舌、女巫帽的搭扣、潜水头盔的舷窗以及兔/猫耳的内侧都会相应移动)。实时预览每秒旋转机器人一次,便于从各个角度查看帽子。帽子也可以导出/导入 JSON,便于自定义设计。

配色方案

游戏侧边栏的 颜色 面板展示调色板:方块色、方块边缘色、目标色、点亮目标色、背景色和机器人本体色。你可以使用内置主题,也可以自行编辑。

语言

UI 翻译支持 23 种语言:英语、西班牙语、法语、德语、意大利语、葡萄牙语、俄语、中文、日语、韩语、印地语、孟加拉语、越南语、阿拉伯语(从右到左的布局)、泰语、他加禄语、挪威语、荷兰语、瑞典语、土耳其语、斯瓦希里语、印尼语和波兰语。默认语言遵循浏览器的 navigator.language;起始屏幕上的语言选择器会在本次会话中覆盖它。内置关卡的名称和描述以及内置帽子的名称都已翻译为所有支持的语言。编辑名称或描述时,关卡编辑器只写入当前选择语言的槽位,其他语言的翻译保持不变。

浅色 / 深色模式

应用外壳跟随浏览器的 prefers-color-scheme。在颜色面板中选择 默认 主题时,会应用与浏览器当前模式匹配的调色板,所以切换模式时会保持同步。任何其他内置主题 —— 或你自行调整的自定义调色板 —— 都会覆盖此行为。

鸣谢

由 Al Sweigart 制作 — https://inventwithpython.com/botbright/

灵感来自 Daniel Yaroslavski 的 Lightbot