OY-Play
下载客户端
获取 麻将出牌训练器
浏览器可玩

游戏详情

麻将出牌训练器

基于「面子锁定优先级」与「损失数/机会数」模型的麻将出牌决策训练工具,纯前端实现,即开即用。

✨ 功能特性

  • 🎯 随机生成手牌与河牌,模拟真实决策场景
  • 🧮 精确计算损失数(完整面子枚举 + 交集算法)
  • 📈 机会数去重计算,避免重复统计
  • 🧠 切牌优先级:锁定面子 > 待听牌型 > 孤张
  • 🔢 并列最优时应用「离5越远优先」规则
  • 📊 实时统计:连对/连错、正确率、总用时
  • 📜 历史记录回溯,方便复盘
  • ❓ 内置帮助系统,规则说明一目了然
  • 📱 移动端适配(响应式设计 + 触屏优化)

🚀 快速开始

直接在浏览器打开 即可使用,无需安装任何依赖。

📖 规则说明

基本概念

概念 定义
面子 完整的顺子(如456)或刻子(如999)
待听牌型 差一张即可组成面子的牌组(对子、连续搭子、间隔搭子)
孤张 既不属于面子也不属于待听牌型的单张牌
机会数 待听牌型能摸到所需牌的剩余张数总和
损失数 打出一张牌后,剩余牌中无法组成面子或待听牌型的牌的总张数

待听牌型分类

  • 对子:两张相同牌(如22),等待第3张组成刻子
  • 连续搭子:两张连续牌(如12或34),等待两侧或中间的一张组成顺子
  • 间隔搭子:两张间隔一张的牌(如13或46),等待中间的一张组成顺子

出牌优先级

复制代码
锁定面子 > 待听牌型 > 孤张

分析手牌时,优先假设已有面子保留,再将剩余牌尽可能组成待听牌型,最后才是孤张。

出牌决策流程

  1. 找出孤张:分析手牌,找出所有既不属于面子也不属于待听牌型的牌
  2. 存在孤张 → 计算每张孤张的损失数,选择损失数最低的打出
  3. 无孤张 → 比较打出每张牌后剩余待听牌型的总机会数,选择机会数最大的打出
  4. 并列最优时 → 数字离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

📉 损失数计算

定义

打出一张牌后,剩余手牌中完全无法参与任何面子或待听牌型的牌的张数总和。

核心步骤

  1. 移除打出的牌,统计剩余同花色手牌
  2. 锁定尽可能多的面子(顺子/刻子),仅保留面子数量最多的方案
  3. 对剩余散牌,找出差值大于2的数字(无法组成搭子)
  4. 对每个损失数字计算剩余张数:4 - 手牌占用 - 河牌占用
  5. 求和即为损失数

示例

例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 页

评价

加入游戏库并体验后即可评价。

加载中...