一个用 HTML5 Canvas + 原生 JavaScript 写的网页小游戏 Demo,附带一套 可让 AI 自动运行与自动测试的工具链(Playwright 无头浏览器)。
当前
src/game.js是一个占位 demo(方向键移动方块),用于验证自测回路; 之后会整体替换为真正的游戏,架构保持不变。
部署到 GitHub Pages 后:https://<用户名>.github.io/point-game/
直接双击 index.html 即可在浏览器中游玩,或启动一个本地静态服务器:
npm run serve # 然后打开 http://localhost:5173npm install
npx playwright install chromium
npm test # 无头跑通:模拟输入 -> 断言状态 -> 截图测试通过后会在 screenshots/ 下生成画面截图,用于视觉验证。
- 确定性内核:种子化随机数 + 固定时间步长,相同
(种子, 输入序列)必得相同状态,断言可用精确相等。 - 逻辑与渲染分离:
step()只改状态,render()只画图,测试可瞬间推进上千帧而无需等待。 - 测试契约
window.__game:reset / step / setInput / press / getState,Playwright 通过它驱动游戏并读回 JSON 状态,截图覆盖视觉部分。
index.html 游戏页面外壳
src/game.js 游戏逻辑 + 渲染 + window.__game 测试契约
tests/selftest.mjs Playwright 无头自测
tools/serve.mjs 本地静态服务器