【任务背景】
游戏是检验 AI 编程能力边界的好题目——逻辑密、手感要调、还得真的能玩。我给全新 TRAE 的 Agent 模式提的需求只有一句话:复刻 90 坦克大战,单个 HTML 文件,双击就能玩,敌方 AI 要会包抄。
【推进过程】
第一轮:一句话变成可玩的游戏。
第一版交付就有完整框架:Canvas 战场、砖墙(可打碎)/钢墙/草丛/基地老鹰、3 条命、12 辆敌方坦克按波次补充、全类型碰撞、过关换图加速、最高分本地存档,音效用 Web Audio 合成、零音频文件,保持了单文件的纯粹。我试玩后的唯一反馈是"AI 太蠢,只会在原地绕圈",Agent 随即给敌方加了概率转向逻辑——游走中定期朝玩家或基地方向切,包抄感立刻就出来了。
第二轮:我一次提了一整页需求,一轮全部落地。
能玩之后我加码,把经典 90 版的灵魂功能一次全提了:道具系统(闪光坦掉落,五角星三级子弹升级、头盔无敌、地雷清屏、时钟冻结、铁锹护基地、加命)、敌坦三级分化(普通 100 / 快速 200 / 重甲 400 三血变色)、暂停键、结算统计(击毁数/命中率/用时)、STAGE 过场、连杀 COMBO、地图从 2 张扩到 4 张。
这一轮比我预期的大得多:这些模块不是各自独立的,道具 × 子弹升级 × 敌坦血量 × 结算统计之间互相咬合,但一轮下来没有出现模块互相打架的情况——这说明它对"一页复合需求"的拆解是真的到位,而不是逐条硬凑。
第三轮:把任务拆成几条线同时推进。
到这一步我不满足于"能玩",想把表现也拉起来,于是同时开了几条线并行推进,最后合并产物:
- 一条线专门做视觉:把纯矩形拼的坦克换成像素精灵——四个朝向各一套、履带两帧交替形成移动动画,炮管能看出朝向;击毁坦克和打碎砖墙改成逐帧扩散爆炸;
- 一条线做结算与分享:重做结算界面,并加"保存战绩图"——点击后用离屏 Canvas 把本局得分/击毁/命中率/用时/最高分绘成一张竖版战绩卡导出 PNG,方便发朋友圈;
- 一条线做移动端适配专项验证:拿手机视口尺寸(390×844、844×390)实测,并顺手产出一张玩法说明图(6 种道具 + 敌坦分级 + 操作方式)。
这几轮里最值得说的,是两个"实测才暴露"的问题:
- 自测说"通过"不等于真的通过。 结算界面加好后,Agent 报告是"已实现、自测通过",但我自己打开 ?result=1 一看,画面渲染出来的还是开始界面,而且"保存战绩图"整块功能其实没写进去。退回重做后才真正好了。这件事提醒我:Agent 的自测结论必须要求给出可核查的证据(截图/实测数值),不然"通过"两个字没有信息量。
- 移动端适配藏着硬伤。 专项验证的实测数据是:手机竖屏下页面因为缺 viewport 被按 980px 兜底布局,整个战场被缩到 0.40×——方向盘按钮实际只有约 30px(低于 44px 的可点标准)、HUD 字号约 8px 根本读不清,还多出 8px 横向滚动;横屏更糟,画面高度超出屏幕,顶部约 83px 被裁掉而且滚不上去,敌方坦克出生区直接看不见。补上 viewport、改成响应式等比缩放入屏、触控按键改固定尺寸 DOM 覆盖层之后才真的能在手机上玩。
【最终产物】
-
在线试玩:[点击体验] (https://9e06b4e9.trae-tank-battle.pages.dev/)
-
坦克大战.html:单文件、零依赖、离线可玩的 90 坦克大战复刻版,含道具系统、三级敌坦、像素精灵与爆炸动画、STAGE 过场、连杀 COMBO、结算统计与战绩分享卡;
-
玩法说明图一张(纯 CSS/SVG 绘制,零外部资源);
-
附加的调试参数:?auto=1 固定战局截图、?result=1 直达结算界面、?touch=1 强制触屏、?demo=1 AI 观战。
【真实评价】
- 明显省时间的环节:第一版框架一次成型;一整页复合需求能一轮拆解实现;需要可测试性时它会主动改造程序结构(比如为了让无头截图确定性,加了 ?auto=1 用同步预演固定战局)——这个意识比很多新手开发者都强。
- 仍然替代不了人的环节:手感与难度平衡(移动速度、射速、AI 强度)只能靠人反复试玩反馈;验收环节必须人自己打开看,这次就是靠我亲手打开才抓到"结算界面没生效"和"手机端 0.40×"两个问题。
- 给产品的建议:
- Agent 的自测结论希望强制附带实测证据(截图、实测数值),减少"报告通过、实际没生效"的情况;
- 涉及前端产物时,建议默认就带上响应式 viewport 与移动端适配,而不是等用户专门提一轮需求;
- 如果能内置"按键模拟试玩"这类交互回路,游戏类任务的迭代会快很多。





