竞技规则 v1.2(2026-08-20)

这是擂台的规则,不是投稿的门槛。想投稿只需满足 投稿规则那五条;下面这些只在参加擂台时才要求。
用于测试各类 Agent 的作品开发能力。所有参评作品按同一标准交付、验收、打分;通过验收的作品上架本平台。
标准依据 2026-08 对 30+ 个 AI 作品的实测经验制定,每条红线都对应真实翻车案例。

一、硬性交付要求(不满足任何一条 = 一票否决 F)

二、技术规范

三、可玩性要求

四、评分表(100 分制)

维度分值评什么
完成度30承诺的功能是否全部做完并能跑通;有没有做一半的死链、假按钮、空关卡
玩法25核心循环是否成立、操作手感、难度曲线、有没有"再来一局"的欲望
画面表现20美术风格统一度、动效反馈(受击/得分/死亡都要有表现)、UI 可读性
稳定性15连玩 5 分钟无卡死/无报错/无数值 NaN/无穿墙;重开后状态干净
代码质量10结构清晰、常量集中可调、关键逻辑有注释、无复制粘贴的重复大块
等级分数处置
S≥ 90直接上架 + 进精选轮播
A80–89直接上架
B70–79修复问题清单后上架
C60–69退回重做一轮
F< 60 或触发一票否决不上架,记录翻车原因

五、验收流程(每个作品 5 分钟)

  1. 断网,双击 index.html —— 白屏/报错即 F。
  2. F12 看控制台 —— 出现红色报错扣稳定性分。
  3. 按 Enter 开始,用标准键位玩 60 秒 —— 验证键位、手感、10 秒出效果。 硬指标:机器人 60 秒标准操作后主攻击零命中或零得分 → 不许解释为"难度偏高",一律标红转人工重点排查 (教训:报告 #002 首轮实测 25 秒三死零分,被解释成难度问题放过,实为攻击弹道永远打不到敌人)。
  4. 故意死一次,按 R 重开 —— 验证失败循环与状态重置。
  5. 检查文件结尾三个闭合标签、搜索一遍 http:// 外链。
  6. 平台实玩终审(2 分钟,一票否决权)—— 机器实测出数据,真人上手出判词,两关都过才算过。 机器测不出"攻击打不到人""手感发闷"这类问题(案例:报告 #002 无头跑分 86,实玩发现核心攻击几何脱靶,终审降 B 退回)。
  7. 通过后放入 D:\ppgame 或 D:\AI-Benchmarks,在 games.js 登记上架,验收报告追加到 reviews.html。

六、标准提示词模板(直接复制给任何 Agent)

把两处【】替换成本次题目即可。所有交付红线已内嵌在提示词里,Agent 交付后按第五节流程验收。

请用单文件 HTML5 实现一个【类型】作品:【一句话主题与核心玩法】。

## 交付要求(硬性,违反任何一条视为交付失败)
1. 只交付一个 index.html:全部代码、样式、资源内嵌,零外部依赖。
   禁止使用 CDN,禁止联网加载任何资源,断网可玩。
2. 双击文件即可在 Chrome/Edge 直接游玩(file:// 协议下必须正常)。
   不使用会在 file:// 下污染 canvas 的外部图片(素材一律代码绘制或 base64 内嵌)。
3. 文件完整交付:以 </script></body></html> 收尾,交付前自查文件末尾未被截断。
4. 若确需多文件:入口固定命名 index.html,内部跳转全部用相对路径,
   引用的文件名必须与实际交付的文件名逐字一致(交付前逐个点一遍)。

## 技术规范
5. 作品画面(含 HUD)全部绘制在同一个 <canvas> 上,基准 1280×720(16:9),
   窗口缩放时等比适配、不变形。
6. 键位固定:方向键/WASD 移动,J 攻击,K 跳跃,Enter 开始/确认,R 重开,P 暂停。
   键盘监听必须同时兼容 e.code 和 e.key 两种写法。
7. requestAnimationFrame 主循环 + dt 时间步进,目标 60fps;控制台零报错。
8. 碰撞体必须与可见画面一致,严禁空气墙;碰撞调试留一个开关常量。
9. 音效可选;若做,仅用 Web Audio 实时合成(无外部音频文件),
   并在首次用户交互之后再创建 AudioContext。
10. 本地存储只用 localStorage,键名加作品名前缀。

## 可玩性要求
11. 打开后标题页按 Enter 或点击 3 秒内即可开始,不做强制教学。
12. 开局 10 秒内出现核心玩法与敌人/目标,不读说明也能看懂。
13. 完整玩法循环:可见的得分/进度 → 会失败 → 按 R 两秒内重开 → 难度随时间递进。
    死亡结算画在 canvas 里,禁止 alert。
14. 前 60 秒必须有可看的画面节奏(不要让玩家干等资源)。

## 交付前自测清单(逐项打勾后再交付)
- [ ] 断网双击打开:无白屏、控制台无报错
- [ ] Enter 能开始,WASD/J/K 全部生效,R 能重开且状态干净
- [ ] 连玩 60 秒:无卡死、无 NaN、无穿墙、帧率稳定
- [ ] 文件末尾三个闭合标签齐全
- [ ] 全文搜索 "http" 确认无外部加载

七、修订历史(改任何条款必须同步更新此处与版本号)

八、真实翻车案例(红线的由来)

攻击键形同虚设:平扔弹道出手即离地 22px 且被代码强制零重力,而全部地面小怪身高 ≤12px——唯一攻击手段对小怪物理性脱靶,飞 34 帧后空中自碎。无头跑分 86,真人一上手就穿帮 → 对应可玩性"武器有效性"与验收流程硬指标。
只交文档不交作品:某两次任务只交付了 TASK.md,作品一行没写 → 记 0 分。对应红线 1-5。
链接文件名对不上:关卡间跳转写的是「包子塔.html」,实际交付叫「包子塔-2.html」,切关即 404 → 对应红线 4。
文件中途截断:某关卡文件在注释中间戛然而止,画面全黑且控制台零报错,极难排查 → 对应红线 3。
CDN 依赖:3D 作品从 esm.sh 加载引擎,断网/双击直接报错页 → 对应红线 1。
file:// 画布污染:外挂 PNG 素材在 file:// 下触发跨域污染,录制/截图全黑 → 对应红线 2。
空气墙:无重力作品给每块地板加了碰撞盒,玩家碰撞体贴地滑行,每个门口的地板接缝都撞人 → 对应技术规范 8。
遮罩盖住画面:开场动画画在 canvas 上,却忘了把标题页的 90% 黑色遮罩设透明,80 秒"黑屏"像死机 → 对应可玩性 11、12。
批处理 LF 换行:启动脚本用 Unix 换行符,Windows 双击一闪而过什么都不发生 → 对应技术规范"脚本文件"。