Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

GuandanMaster · 掼蛋练功房 🃏

练功 · 非游戏 —— 以掼蛋为载体,锤炼工程能力与 AI 策略的练功房。

项目代号:GuandanMaster | 双副牌、四人、浏览器直接运行。

掼蛋是起源于中国安徽淮安的扑克游戏,使用两副牌(108张),四人两两组队进行对抗。

本项目不是面向最终用户的游戏产品,而是一个持续迭代的练功项目:从零构建完整的规则引擎、AI 策略系统、界面交互,边练边学。


快速开始

纯前端应用,无需安装任何依赖。直接用浏览器打开 game/index.html 即可。

# 就这么简单
start game/index.html      # Windows
open game/index.html       # macOS
xdg-open game/index.html   # Linux

键盘操控(整套)

本项目的所有操作均可通过键盘完成:

操作
在卡牌间移动焦点
Space 选中 / 取消焦点牌
Enter 出牌
P 过牌
S 理牌 / 拆开 (开关)
H Advisor 出牌建议(开关)
Q 翻看其他玩家的手牌(开关)
D 复制调试信息到剪贴板,同时保存到 localStorage
L 加载最近一次保存的牌局(复盘)
/ 查看快捷键列表

操作流程示例:← → 选牌 → Space 选中 → Enter 出牌,或 P 过牌。


练功方向

🎮 游戏引擎

  • 双副牌掼蛋规则完整实现:炸弹、同花顺、火箭、钢板(三连对)、三带二、顺子、逢人配(万能牌)
  • 四人对战,2v2 组队,自动计分与升级
  • 残局检测、接风逻辑

🔧 规则引擎(game-engine.js)

  • 牌型检测:单张、对子、三同张、三带二、顺子、同花顺、炸弹、三连对、钢板
  • 逢人配(万能牌)在每种牌型中的填补逻辑
  • 炸弹等级比较、出牌合法性验证
  • 高级到低级:canBeatcompareBombs → 同型比较

🧠 AI 策略(ai-player.js)

  • 三级难度:新手 / 进阶 / 高手,各有独立决策链路
  • 残局策略体系:
    • 对手 1-2 张 → 封堵(出更大张数组合)
    • 对手 3-4 张 → 3+2 / 三同张 / 对子(不出单张)
    • 对手 5+ 张 → 多张组合清牌
    • 对手 4-6 张且牌权在手 → 该炸就炸
  • 逢人配使用惩罚(浪费万能牌重罚 +50)
  • 记牌逻辑与手牌质量评估
  • 队友配合:送牌、封堵、接风

💡 Advisor 出牌建议系统(advisor.js)

  • 实时分析手牌与局面,提供 Top 2 建议
  • 多维度评分体系:
    • 牌池记忆:死点、花色、大王跟踪
    • 位置意识:队友/对手、送牌/压牌
    • 残局优化:一手出完、送队友、压对手
    • 炸弹策略:炸链节约、后续检查、逢人配豁免
    • 多步规划:孤张评分、不拆牌型
    • 过牌建议:scorePass 评分,含队友放行提示
  • 调试:D 键导出评分明细,L 键加载存档复盘

🖥 界面与控制(ui-controller.js)

  • 键盘全操控:方向键选牌、空格确认、Enter 出牌
  • 出牌动画(旋转+缩放+模糊入场)
  • 回合高亮、奖杯系统
  • Web Audio API 音效合成
  • 增量渲染(仅新出牌播放动画)
  • 理牌功能、自动过牌、翻看底牌

项目结构

GuandanMaster/
├── game/
│   ├── index.html          # 主页面
│   ├── style.css            # 样式
│   ├── ui-controller.js     # 界面控制、键盘交互、渲染
│   ├── game-engine.js       # 掼蛋规则引擎
│   ├── advisor.js           # Advisor 智能出牌建议
│   └── ai-player.js         # AI 玩家决策逻辑
├── README.md
├── LICENSE
└── .gitignore

模块依赖关系

index.html
  ├── style.css         (样式)
  ├── game-engine.js    (规则引擎 → 一切的基础)
  │   └── advisor.js    (建议系统 → 基于引擎分析手牌)
  ├── ai-player.js      (AI 决策 → 基于引擎出牌)
  └── ui-controller.js  (界面控制 → 绑定引擎 + 键盘 + 渲染)

技术栈

  • 纯浏览器端 — 无框架、无构建工具、零依赖
  • HTML5 + CSS3 + ES6 JavaScript
  • Web Audio API(音效合成)
  • CSS 动画(关键帧 + cubic-bezier)
  • localStorage(牌局保存与复盘)

练功笔记

本项目的核心理念是以练代学

练功维度 对应模块 练习内容
规则系统设计 game-engine.js 牌型检测算法、万能牌填补、比较排序
AI 策略 ai-player.js 决策树、评分函数、局面评估
建议系统 advisor.js 多维度评分、权重调优、理由生成
UI/UX ui-controller.js + style.css 增量渲染、动画、键盘导航、音效
工程实践 整体 代码组织、模块划分、调试工具、版本管理

开源协议

MIT 协议


致谢

  • 掼蛋规则参考自《掼蛋竞赛规则》
  • AI 策略受掼蛋社区经验与博弈论启发

About

This is a web application about Guandan(掼蛋), featuring three AI practice partners and an AI Advisor, where you can train to improve your Guandan skills.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages