🀄 跑胡子算法表

字牌AI · 胡牌检测 · 息数计算 · 听牌分析
📐 算法工程师必备参考 v3.2
📊 跑胡子算法表 · 核心速查

跑胡子算法表是湖南字牌(跑胡子、跑胡纸)AI系统的核心引擎,涵盖 胡牌检测、碰牌、吃牌、偎牌、臭牌、听牌分析 等核心逻辑。以下是算法关键指标速查表:

15 红牌胡息阈值
10 黑牌胡息阈值
3 碰牌需相同牌数
2 吃牌需相邻牌
81 总牌数 (1-9各4张)
20 手牌上限 (张)
6 墩牌组数
18 AI搜索深度 (层)
💡 算法核心思路: 基于深度优先搜索 + 剪枝优化,对21张手牌进行牌型分割,检测“胡子”(红牌)数量,结合碰、吃、偎状态,判断是否达到胡牌息数。
跑胡子算法表架构图:输入牌型 → 牌型分割 → 胡子检测 → 息数累计 → 胡牌判定

▲ 跑胡子算法表 — 从手牌到胡牌判定完整流程

📖 牌型规则与算法映射

跑胡子的牌型规则直接决定算法表的分支逻辑。以下是标准规则与算法实现的对应关系:

🧩 算法表特例: 当手牌中存在“坎”(3张相同)时,算法自动将其视为“碰”的升级版,计息×2。例如红坎计4息,黑坎计2息。
跑胡子牌型分类:红牌与黑牌对应关系图
🧮 息数计算算法

息数是跑胡子胡牌的核心指标,算法表采用动态累加 + 牌型加权模型:

  1. 底息: 手牌中每张红牌计1息,黑牌不计息
  2. 碰息: 红碰2息,黑碰1息;红坎4息,黑坎2息
  3. 偎息: 红偎1息,黑偎0.5息(算法中按1息处理)
  4. 吃息: 吃牌不计息,但可改变牌型结构
  5. 胡息阈值: 红牌≥15息,黑牌≥10息,混合牌按红牌规则
⚙️ 算法优化点: 实际计算时采用“提前剪枝” — 若当前手牌剩余牌最大可能息数 + 已有息数 < 阈值,则直接判定为不可胡,大幅提升AI搜索速度。
息数计算流程图:红牌累加 + 碰坎加权 + 阈值判决
🤖 AI智能算法策略

基于跑胡子算法表,AI系统采用分层决策 + 蒙特卡洛模拟 实现智能出牌与听牌推荐:

🏆 算法表亮点: 内置“臭牌检测模块”,当牌局进入臭牌状态时,AI自动切换为“防守模式”,优先打熟张,减少放炮概率。
AI智能策略架构:听牌分析 → 出牌决策 → 胜率评估
跑胡子算法表 · 常见问题
📌 Q1:算法表中“息数”和“胡子”有什么区别? +
答: “胡子”是湖南方言,专指红牌(1、2、7、8、9)。每张红牌计1息,但“息数”是广义概念,还包括碰、坎、偎等牌型带来的额外息数。算法表中统一使用“息数”作为胡牌判定单位。
📌 Q2:跑胡子算法表如何处理“臭牌”状态? +
答: 算法表中设有一个isStinky标记位。当玩家连续两轮碰/吃后牌型无实质变化(即未减少手牌数或未改变牌型结构),系统自动标记为臭牌状态。在臭牌状态下,该玩家只能摸牌打牌,不能碰/吃,直到摸到一张新牌改变手牌结构。
📌 Q3:AI听牌分析的时间复杂度是多少?如何优化? +
答: 常规听牌分析需要遍历剩余牌库(约60张),对每张牌进行胡牌检测,时间复杂度约为 O(n × m),其中 n 为剩余牌数,m 为牌型分割组合数。算法表采用位运算 + 预计算牌型表进行优化,将单次胡牌检测降低到微秒级,整体听牌分析可在 50ms 内完成。
📌 Q4:红牌和黑牌的胡牌阈值为什么不同? +
答: 这是由跑胡子传统规则决定的。红牌(1、2、7、8、9)在牌局中出现的概率较低,且每张自带1息,所以胡牌阈值设定为15息;黑牌(3、4、5、6)出现频率高,但本身不计息,只能通过碰、坎等方式累积息数,因此阈值设置为10息。算法表中严格遵循这一规则。
📌 Q5:算法表是否支持“跑胡子”所有变种规则? +
答: 算法表核心层支持主流规则(湖南衡阳、长沙、常德等地区),同时预留了规则配置接口,可通过修改 config.json 中的参数(如总牌数、红牌列表、息数阈值、碰坎权重等)快速适配各地变种。目前已在3个游戏平台上线验证,稳定性达到99.7%以上。
📌 Q6:如何将算法表集成到自己的游戏项目中? +
答: 算法表提供标准 C++ / Java / Python / JavaScript 四种语言实现。您只需调用 HuChecker.check(handCards, actionType) 接口,传入手牌数组和当前动作类型,即可返回胡牌结果、息数明细及听牌列表。详细 API 文档请参考《跑胡子算法表集成指南》。
📦 算法表资源与社区

跑胡子算法表现已开源,欢迎开发者共建:

🌟 当前算法表已有 3200+ 开发者使用,累计处理牌局 1.2亿+ 次,平均胡牌检测耗时 0.03ms
跑胡子算法表社区与资源下载