1/2
获取 麻将出牌训练器
浏览器可玩
游戏详情
麻将出牌训练器
基于「面子锁定优先级」与「损失数/机会数」模型的麻将出牌决策训练工具,纯前端实现,即开即用。
✨ 功能特性
- 🎯 随机生成手牌与河牌,模拟真实决策场景
- 🧮 精确计算损失数(完整面子枚举 + 交集算法)
- 📈 机会数去重计算,避免重复统计
- 🧠 切牌优先级:锁定面子 > 待听牌型 > 孤张
- 🔢 并列最优时应用「离5越远优先」规则
- 📊 实时统计:连对/连错、正确率、总用时
- 📜 历史记录回溯,方便复盘
- ❓ 内置帮助系统,规则说明一目了然
- 📱 移动端适配(响应式设计 + 触屏优化)
🚀 快速开始
直接在浏览器打开 即可使用,无需安装任何依赖。
📖 规则说明
基本概念
| 概念 | 定义 |
|---|---|
| 面子 | 完整的顺子(如456)或刻子(如999) |
| 待听牌型 | 差一张即可组成面子的牌组(对子、连续搭子、间隔搭子) |
| 孤张 | 既不属于面子也不属于待听牌型的单张牌 |
| 机会数 | 待听牌型能摸到所需牌的剩余张数总和 |
| 损失数 | 打出一张牌后,剩余牌中无法组成面子或待听牌型的牌的总张数 |
待听牌型分类
- 对子:两张相同牌(如22),等待第3张组成刻子
- 连续搭子:两张连续牌(如12或34),等待两侧或中间的一张组成顺子
- 间隔搭子:两张间隔一张的牌(如13或46),等待中间的一张组成顺子
出牌优先级
锁定面子 > 待听牌型 > 孤张
分析手牌时,优先假设已有面子保留,再将剩余牌尽可能组成待听牌型,最后才是孤张。
出牌决策流程
- 找出孤张:分析手牌,找出所有既不属于面子也不属于待听牌型的牌
- 存在孤张 → 计算每张孤张的损失数,选择损失数最低的打出
- 无孤张 → 比较打出每张牌后剩余待听牌型的总机会数,选择机会数最大的打出
- 并列最优时 → 数字离5越远的牌越优先(如1或9最优先,5最不优先)
🧮 机会数计算
定义
某组待听牌型,能摸到有效进张的剩余可摸张数总和。
公式
机会数 = Σ (4 - 该牌在手牌中占用数 - 该牌在河牌中占用数)
示例
例1:手牌12(同花色,无河牌)
- 12是搭子,等待3组成123
- 3共4张,手牌0张,河牌0张
- 机会数 = 4 - 0 - 0 = 4
例2:手牌22(同花色,无河牌)
- 22是对子,等待2组成222
- 2共4张,手牌已占2张,河牌0张
- 机会数 = 4 - 2 - 0 = 2
例3:手牌68和89(同花色,无河牌)
- 68等待7,89也等待7
- 7只计算一次(去重)
- 机会数 = 4,而不是8
📉 损失数计算
定义
打出一张牌后,剩余手牌中完全无法参与任何面子或待听牌型的牌的张数总和。
核心步骤
- 移除打出的牌,统计剩余同花色手牌
- 锁定尽可能多的面子(顺子/刻子),仅保留面子数量最多的方案
- 对剩余散牌,找出差值大于2的数字(无法组成搭子)
- 对每个损失数字计算剩余张数:
4 - 手牌占用 - 河牌占用 - 求和即为损失数
示例
例1:手牌2589,打2,无河牌
- 剩余5、8、9,无面子可锁定
- 损失数字:1、2(均无法与5、8、9组成搭子)
- 1:4 - 0 - 0 = 4
- 2:4 - 0 - 1(打出的2进入河牌)= 3
- 损失数 = 4 + 3 = 7
例2:手牌33456,打3,无河牌
- 剩余3、4、5、6,有两种面子选择:345或456
- 方案A锁345 → 剩余6 → 损失数字:1、2、3、9
- 方案B锁456 → 剩余3 → 损失数字:1、2、6、7、8、9
- 取交集:9
- 9:4 - 0 - 0 = 4
- 损失数 = 4
例3:手牌226789,打6,无河牌
- 剩余2、2、7、8、9,锁定顺子789,剩余2、2
- 损失数字:5、6、7、8、9
- 5:4张;6:3张(打出的6);7、8、9各有1张在手牌
- 损失数 = 4 + 3 + 3 + 3 + 3 = 16
🔄 机会数与损失数的关系
| 维度 | 机会数 | 损失数 |
|---|---|---|
| 思考方向 | 正向(还能进什么牌) | 逆向(打错损失什么牌) |
| 计算对象 | 待听牌型 | 打出的牌 |
| 应用场景 | 无孤张时比较出牌 | 有孤张时比较出牌 |
| 去重规则 | 相同等待牌只算一次 | 多种面子方案取交集 |
游戏动态
0 条暂无游戏动态。
第 1 / 1 页
