用 AI 工具从零做一个完整掼蛋游戏

一个纯前端单机版的诞生记录 · 全程与 AI 编程工具协作迭代

3791行单 HTML 文件
0后端 / 依赖 / 构建
24套核心自动化测试全绿
11+轮需求→实现→反馈迭代
掼蛋游戏界面截图
图 0 · 单文件掼蛋游戏界面:四家牌桌、记牌器、手牌与底部控制栏

掼蛋是风靡长三角的四人扑克玩法(两副牌、对家配合、升级争上游)。我一直想有一款「浏览器双击即玩」的单机版,但传统开发要写 UI、状态机、AI、规则引擎,工作量不小。

这次我换了个思路:把 AI 编程工具当成高级协作者,从需求拆解到代码生成、调试、测试,全程让它参与。最终产出一个 guandan.html 单文件,打开即玩(玩家 vs 三个 AI)。本文复盘它的技术架构、开发流、踩过的坑与质量保障——既是案例,也是一份「AI 辅助做小游戏」的方法论。

一、目标与约束

要做什么

给自己定的约束

二、技术栈

极简到了极致:单文件 HTML + 原生 JavaScript + CSS。没有 React/Vue,没有打包器,状态集中在一个全局对象 G 上。

核心函数(均由 AI 工具生成并逐步打磨):

为什么坚持单文件?因为目标就是「发出去别人双击就能玩」——任何构建步骤都会抬高分享门槛。

三、开发流:和 AI 协作的迭代环

整个过程是一个稳定的闭环:

# 每一轮
人 提需求 / 贴截图反馈  →  AI 实现代码
        ↓
人 在浏览器实测  →  发现遮挡 / 卡死 / 逻辑错
        ↓
AI 定位根因并修复  →  AI 补自动化测试锁定行为

例如下面这些是「贴图反馈 → AI 修」的真实轮次:

关键心得:把「现象」描述清楚(最好带截图),AI 的定位和修复往往一次到位;而用自动化测试把修好的行为锁住,是避免回归的核心手段。

四、核心模块拆解

4.1 牌型引擎

支持全部主流牌型:单张对子三张三带二木板(三连对)钢板(三顺)顺子炸弹同花顺炸弹,并处理逢人配(万能配)——级牌可当任意牌凑组合。

输入手牌(13张) 基础分类 单/对/三/三带二 组合识别 木板/钢板/顺子 特殊炸弹 同花顺炸弹/炸弹 输出 combo {type, value, length}
图 1 · 牌型识别管线:从手牌到结构化 combo

识别逻辑的核心示意(真实实现约为此结构的扩展):

function analyzeCards(cards){
  const n = cards.length;
  if (n === 1) return {type:'single', value};
  if (n === 2 && sameRank) return {type:'pair', value};
  if (n === 3 && sameRank) return {type:'trio', value};
  // 木板: 三连对 / 钢板: 三顺 / 顺子: 连续单
  // 同花顺炸弹: 5张同花色连续 —— detectFlushBombs()
  return combo;
}

4.2 AI 对手与公开倒计时

三家 AI 各自决策出牌 / 跟牌 / 压牌;右侧/旁显示公开倒计时徽章——玩家 20 秒、管不住 5 秒、AI 1.5 秒,让对局节奏透明。

4.3 智能提示(最小能管优先)

提示不是「随便给一手」,而是按优先级给最小能管上家的牌,尽量不拆组合:

上家牌型? ├─ 单牌 └─ 组合牌 单牌分支 ① 优先不拆组的 最小单牌 ② 否则炸弹 / 拆组合 组合分支 ① 同类型最小 能管组合 ② 否则炸弹 / 拆组合
图 2 · 提示排序:能管则最小、同类型优先、炸弹兜底
智能提示效果截图
图 2-1 · 真实提示交互:点击「提示」自动高亮最小能管组合(对子),并显示「整组出(不拆)」

4.4 上下文选牌

手动出牌时,系统结合上家牌型理解玩家意图:

选牌交互截图
图 4-1 · 真实选牌交互:点中一组牌后自动整组选中,「出牌」按钮实时显示识别出的牌型

4.5 记牌器 & 4.6 交互打磨

五、踩坑实录(AI 修的三件事)

① 过牌按钮遮挡桌面牌
现象:悬浮的过牌按钮盖住了刚打出的 QQ。
根因:控制按钮原本绝对定位漂浮在手牌上方,飘到了桌面中央。
修法:把控制栏移入底部固定栏 #controls-bar,并提 z-index 至 130。
② 首出卡死(无按钮、无倒计时)
现象:开局轮到自己,点牌没有出牌/过牌按钮,也不倒计时。
根因:控制栏层级低于手牌,且初始化后未正确启动回合流程。
修法:修正启动流程 advanceTurn(),并统一层级关系(手牌 100、控制栏 130)。
③ 同花顺炸弹按钮「点了没反应」
现象:点「提示同花顺炸弹」文字说已选中,点锁定却无反应。
根因:点击后界面重渲染把按钮移出 DOM,事件冒泡到全局处理器,清空了已选中的牌。
修法:在按钮 onclick 加 e.stopPropagation(),重渲染后显式刷新选中与锁定按钮。

六、质量保障:用测试锁定行为

每修一个 bug,都补一套自动化测试,避免回归。当前共 26 套测试,23 套通过——其中核心玩法 24 套全绿,未通过的 3 套是早期(8 月初)写的 DOM mock 脚手架过期,与玩法无关。

核心测试套数分布(共 24 套全绿) 牌型引擎 8 提示智能排序 4 选牌规则 4 同花顺炸弹 3 计时超时 2 AI 跟炸 2
图 3 · 自动化测试覆盖(测试即文档,行为被锁死)

测试跑在 Node 下:把 HTML 里的脚本逻辑 eval 出来,用最小 DOM mock 驱动,断言牌型识别、提示排序、选牌规则、同花顺炸弹、计时超时、AI 跟炸等关键路径。

七、成果一览

指标数值说明
代码规模3791 行单 HTML 文件(HTML+CSS+JS)
后端 / 依赖0纯前端,双击即玩
自动化测试23/26 通过核心玩法 24 套全绿
迭代轮次11+需求→实现→截图反馈→修复

已实现功能:

八、复盘:AI 工具擅长什么、不擅长什么

✅ AI 工具擅长

⚠️ AI 工具不擅长 / 需人把关

给开发者的建议:把 AI 当「高级协作者」而非「决策者」。它负责把明确的需求变成正确代码、把 bug 变成测试;你负责定义需求、把控合规与产品方向、并在关键节点做架构决策。

🧰 复现本案例的工具组合(推荐)

办公与项目侧:需求梳理、迭代记录、测试清单、复盘报告这些"文档密集"环节,推荐用 腾讯 WorkBuddy 全场景 AI 办公工作台(推广链接)——文档、表格、PPT 与自动化工作流集成一处,团队协作尤其顺手。

编程侧:本案例「需求 → 实现 → 截图反馈 → 修复」的协作环在主流 AI 编程助手上都能复现,选型参考站内实测:Windsurf · DeepSeek · Kimi · ChatGPT。

披露:标注"推广链接"的为联盟合作入口,通过它购买不影响你的价格,可能为本站带来佣金;推荐结论保持独立客观。

九、合规说明

本案例仅用于展示开发过程与技术实现。所涉游戏成品未在任何公开渠道提供在线试玩或下载,符合《网络出版服务管理规定》关于非公开技术展示的边界。如计划对外公开发布或运营,须依法依规办理相应资质。
RELATED READS
相关阅读
2026年AI办公工具推荐:周报、PPT、表格、会议纪要,10个场景一次配齐 2026年免费AI工具完全指南:不用花一分钱,覆盖写作、绘画、视频、编程全场景 腾讯混元 Hy4 preview 亮相:7700 亿参数再上台阶,推理大模型竞赛换了打法 中国开源大模型月月反超:754B 级权重成常态,开源格局发生逆向流动 DeepSeek vs 豆包深度对比测评:中文写作与数学推理双场景实测,选型看这篇