Skip to content

About

网页版掼蛋教学对战:AI 教练实时讲解出牌思路,纯前端零依赖双击即玩(Guandan Master Trainer)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

🃏 掼蛋 AI 训练营(Guandan Master Trainer)

帮助零基础玩家从第一局开始学会掼蛋的网页游戏 —— 完整真实的掼蛋对局 + 实时讲解的 AI 教练,纯前端、零依赖、双击即玩。

🎮 在线游玩 · 📦 源码仓库

对局界面


🕹️ 这是什么

掼蛋规则不难,难的是没人告诉你每手牌为什么这么打。本项目把「真实对局」和「教练讲解」合二为一:你打的是完整真实的掼蛋(两副牌 · 4 人两两组队 · 从 2 打到 A · 升级过 A 制),每次轮到你出牌时,右侧的 AI 教练给出出牌方案和通俗的中文理由;对手 BOT 分三档难度,从会犯错的入门陪练到会拆牌、留炸弹、压制报牌的高手教练。

全部逻辑在客户端实现(不调用任何外部 API),断网可玩,PWA「添加到主屏幕」后可原生全屏运行。

✨ 核心特性

  • 完整掼蛋流程:两副牌 108 张全发 → 级牌(打几)→ 轮流出牌 / 接风 → 头游定名次 → 升级制(双上 +3 / 头游三游 +2 / 头游末游 +1)→ 过 A 获胜
  • 🎓 AI 教练侧边栏:局势概览 + 可折叠中文分析 + 可点选方案列表(推荐恒第一);桌面停靠右侧,移动端为抽屉,打完自动收起
  • 教学式纠错:选牌实时显示牌型与「是否压得上家」;非法牌型 / 压不过时用通俗中文解释;出牌按钮实时置灰
  • 三档难度 BOT:🐣 入门(会犯错)/ ⚔️ 进阶(拆牌、留炸弹、偶尔忍牌)/ 🔥 高手(最少手数拆解、队友让牌、对手报牌压制)
  • 学习辅助:内置新手教程(5 章节)、记牌器(含队友亮牌)、报牌红点(≤10 张)、接风提示、纵向智能理牌三模式、拖动批量选牌、跨场战绩统计(localStorage)
  • 结算展示:本手名次表(🥇🥈🥉 徽章)、级牌推进图示(如「我方 5 ➜ 8(+3 级)」)、整场过 A 弹窗 + 胜利彩带
  • 多端适配:桌面 / 窄屏抽屉 / 横屏手机紧凑档 / 竖屏旋转提示;启动门一键全屏 + 锁定横屏;WebAudio 合成 20 种场景音效 + 循环 BGM;支持 prefers-reduced-motion

🎯 玩法速览

  • 组队:你与正上方对家一队(对家亮牌),对抗左右两侧对手
  • 级牌:每手打一个点数(每场从 2 起),红桃级牌是逢人配万能配(可补成除王外任意牌型)
  • 牌型:单张 / 对子 / 三同张 / 三带二 / 顺子(恰 5 张)/ 连对(≥3 对)/ 钢板(≥2 组三同张)/ 炸弹(4~8 张同点)/ 同花顺 / 四王炸
  • 大小:大王 > 小王 > 级牌 > A > K > … > 2;炸弹压普通牌,张数多压张数少
  • 胜负:头游方按队友名次升级;本方头游且队友非末游即过 A,先过 A 者赢下整场
  • 接风:头游最后一手无人压时,由对家队友接风继续出牌

本手结算

🚀 快速开始

方式 操作
🌐 在线游玩 studyguy.github.io/guandan-master-glm(GitHub Actions 自动发布)
💻 直接游玩 克隆仓库后双击 index.html(已验证 file:// 协议可用)
🖥️ 本地服务器 npx http-server -p 8642 -c-1 或 python3 -m http.server 8642

运行测试(需 Node.js):

node test/sim.js
# 39 项逻辑断言(牌型/压制链/万能配/走法/教练/收轮与接风回归)
# + 3 难度 × 20 手 4-BOT 对局仿真 + 1 场"从 2 打到过 A"整场升级验证

🛠️ 技术实现

AI 教练为纯客户端启发式算法(离线可玩):

  1. 手牌拆解:把 27 张手牌拆成尽量少的「手数」,作为局势评估核心
  2. 方案生成:从合法走法中挑出 1~6 个候选(推荐 / 最小 / 最大 / 炸弹 / 让过徽章),推荐恒第一
  3. 决策:能一手跑完直接赢 → 对手报牌时压制 → 队友的牌让行 → 炸弹看时机;教练在决策之上输出中文讲解,并对你的每手出牌对比点评

规则开关(js/rules.js 的 DD.RULES,适配区域差异):起始级牌随机、A2345 顺子、双王对、三带二禁王对、打 A 三败退回 2、报牌阈值、进贡/还贡/抗贡(预留)、结算展示。

调试钩子:?autotest=autoplay 全自动演示整场、&side=1 强制展开教练、?debug=1 输出元素包围盒。

📁 项目结构

guandan-master-glm/
├── index.html            # 页面结构(主页 / 4 人牌桌 / 教程 / 结算)
├── css/style.css         # 全部样式(卡牌纯 CSS 绘制,无图片资源)
├── js/
│   ├── rules.js          # 规则开关集中配置 + 级牌序/升级表
│   ├── cards.js          # 两副牌 108 张生成、洗牌、排序
│   ├── combos.js         # 牌型识别(含逢人配)+ 压制比较
│   ├── movegen.js        # 合法走法枚举(万能配受控展开)
│   ├── ai.js             # 手牌拆解估算、三档 BOT、高手决策
│   ├── advisor.js        # AI 教练:建议 + 中文讲解 + 方案点评
│   ├── sfx.js            # WebAudio 合成音效
│   ├── game.js           # 4 人 2 队对局状态机(事件驱动)
│   ├── ui.js             # 牌桌渲染与交互
│   └── app.js            # 主页、教程、自动演示与调试钩子
├── docs/ARCHITECTURE.md  # 架构决策文档(继续开发前先读)
├── docs/img/             # 界面截图
├── test/sim.js           # 逻辑断言 + 对局仿真 + 整场升级验证
└── PROGRESS.md           # 开发进度与交接

📌 当前状态

逻辑层与表现层均已完成并通过验收(详见 PROGRESS.md)。唯一预留未实现的大项:进贡 / 还贡 / 抗贡(rules.gong 开关已预留,默认关闭)。

横屏手机

About

网页版掼蛋教学对战:AI 教练实时讲解出牌思路,纯前端零依赖双击即玩(Guandan Master Trainer)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages