没有构建步骤、没有 npm、没有 CDN —— 双击就能玩,另存就能改。界面中英双语,按 L 切换。
每个文件内部按 算法区 / 游戏层 分层,算法区不碰 DOM,
所以能被单独抠出来做单元测试。五个游戏合起来有 862 条自动化断言 在跑。
球撞挡板的位置决定反弹角度。5 个关卡用字符画描述 —— 加一关就是多打几行字,不用碰任何逻辑。
"推进一格"写成纯函数。转向可以排队两拍 —— 这一个小设计,决定了快速连按会不会丢输入。
轴分离碰撞、单向平台、土狼时间、跳跃缓冲、变高跳。手感靠的是时间,不是粒子特效。
移动写成"进去一个状态、出来一个新状态",撤销、求解器、回放全都免费得到。6 个关卡都被 BFS 证明过可解。
弹幕是数据不是代码:每种形状都是一个返回速度向量数组的纯函数。三种敌人三种弹幕,形状两两不同。
你现在打开的这页就是线上版,点上面的卡片直接玩。
想放到自己机器上:直接双击任意 games/*.html 即可 —— 单个游戏是自包含的。
要让五个游戏互相跳转,用任意静态服务器:
# 任选一种,都不需要装任何东西 python -m http.server 8000 npx serve . # 然后打开 http://localhost:8000
node tests/core.test.mjs # 算法单元测试(196 项) node tests/smoke.test.mjs # 端到端冒烟测试(158 项) node tests/systems.test.mjs # 规则与平衡测试(256 项) node tests/dom-check.mjs # 静态一致性检查(252 项) node tests/readme.test.mjs # 文档一致性检查(不计入上面的总数) npm test # 一次跑完 → 862 项全部通过
不需要 npm install —— 测试只用 Node 内置模块。