已收录条目 棋牌算法 收录时间 2026-11-15 20:50:34

九江麻将本地算法拆解:从平胡到自摸的计番差异对比

打九江麻将,最容易在结算那几秒吵起来的往往不是谁胡了,而是“这牌到底几番”。 平胡和自摸只差一个字,落到分数上可能差出一截。这篇把本地常见的算法拆开讲,从胡牌判定说到自摸加成,再顺带聊聊哪些地方各牌桌写法不一样。 先判定,再算钱:胡牌判定是前置关卡 程序上,胡牌判定和计番是两段逻辑。判定只回答“能不能胡”,计番才回答“胡了值多少”。不少线上实现的争议,就出在

条目编号 #3 判定一致率 98.6% 校验牌谱 2,400 组
九江麻将算法列表条目牌型示意配图
牌型示意与番型标注同步校对,条目修订后配图一并更新。
棋牌算法 条目编号 #3 · 收录于 2026-11-15 20:50:34

打九江麻将,最容易在结算那几秒吵起来的往往不是谁胡了,而是“这牌到底几番”。

平胡和自摸只差一个字,落到分数上可能差出一截。这篇把本地常见的算法拆开讲,从胡牌判定说到自摸加成,再顺带聊聊哪些地方各牌桌写法不一样。

先判定,再算钱:胡牌判定是前置关卡

程序上,胡牌判定和计番是两段逻辑。判定只回答“能不能胡”,计番才回答“胡了值多少”。不少线上实现的争议,就出在这两步被混在一起写。

牌型检查的几个入口

常规牌型是四副顺子或刻子加一对将,七对走另一条分支。九江本地常见的是不带风牌、只用万筒条的简化牌池,所以“缺门”这件事在不同牌桌上态度不一样——有的要求缺一门才能胡,有的完全放开。这一条不写清,后面算番全是空的。

  • 牌数校验:手牌张数先过一遍,挡掉明显异常
  • 面子拆解:能否完整拆成面子加将牌
  • 特殊牌型:七对、碰碰胡单独走分支,别塞进通用递归里

平胡的底番:看着简单,分歧最多

平胡一般指普通四面子一将、没有特殊番型的胡牌。底番通常按 1 番起算,但“1 番值多少分”取决于底分设置:有的桌子底分 1 分、番数照乘,有的干脆把平胡当 0 番,只收底分。

还有庄家这层。庄家胡牌或者庄家点炮,很多本地玩法会额外加一番或加一份,具体怎么加,各小区县不太统一。做算法的时候,建议把庄家加成做成独立开关,别硬编码进番型表——不然改一次规则要动半个文件。

自摸差在哪:三种常见写法

自摸的差异主要体现在加成方式上,而不是自摸本身算不算番。

  1. 加番型:自摸固定加 1 番,和碰碰胡、清一色这些番型平级相加。
  2. 翻倍型:结算时总分乘 2,番型不参与这次乘法。
  3. 加底型:自摸只加一份底分,完全不改变番数。

这三种写法在平胡牌上差别不大,一旦叠上高番牌型,结果能差出好几倍。翻倍型和加番型混用,是线上平台对账对不上的典型原因。

番型叠加:加法和乘法的顺序不能随手定

碰碰胡、七对、清一色、杠上开花、抢杠胡、海底捞月,单看都好实现,难的是叠在一起怎么算。是番数相加,还是取最大值,还是先加后乘?本地牌桌往往只是口头约定,没落到纸面。

一个比较稳的做法是:番型之间只做加法,自摸、杠上开花这类“事件型”加成放到结算末尾单独处理,避免同一份奖励被算两遍。

比如杠上开花本身已经带了自摸的意味,再叠一次自摸加成,就容易算重。

当然也有牌桌就认双份,这种时候规则说明比算法正确更重要。

几个容易被忽略的边界

  • 抢杠胡算不算自摸:多数写法按点炮处理,由被抢杠那家付分
  • 海底自摸:海底和自摸是否同时生效,各桌不一
  • 一炮多响:多家同时胡,是都赔还是只赔最近一家
  • 荒庄流局:杠分怎么退,得单独定一条

九江麻将的算法难点不在代码,而在规则本身没写死。同一句“自摸加一番”,能对应三种实现。

开局前把底分、庄家加成、自摸算法、番型上限这四项说清楚,比事后争论有用得多。做产品的话,把这些做成可配置项,比追求一套“标准答案”更实际。

条目要点

这条算法记录涉及的三个判定层面

同一条目会同时标注胡牌成立条件、番型倍率取值与听口剩余张数,三部分共享同一份牌张编码,避免跨模块换算时出现偏差。

胡牌成立条件

区分门清、点炮、自摸三种成牌路径,对七对、碰碰胡、清一色等结构分别给出成立条件与优先级。

结构判定

番型倍率取值

基础分、叠加顺序与封顶倍率逐项列出,遇到多番叠加时按主干番优先、枝叶番补入的顺序结算。

倍率结算

听口剩余张数

按已出牌序与四张上限推算每个听口的剩余张数,再折算成期望得分,用于比较不同听口的优劣。

概率估算
参数口径

判定参数与统计基准

每项参数都附带计算口径与取值边界,条目修订时同步更新对应数值,旧版本记录保留可查。

34类牌张编码基数
4张单牌张上限
128倍番型封顶倍率
0.6秒单局判定耗时
  • 牌张编码:万、条、筒各九门加风箭七张,统一编码后所有判定共用同一套索引。
  • 番型叠加:主干番决定倍率区间,枝叶番按固定顺序补入,超出封顶值按 128 倍计算。
  • 听口折算:剩余张数乘以对应番型得分,再按牌墙剩余比例修正,得到可比较的期望值。
  • 边界牌例:四归一、杠上开花、抢杠胡等 46 组边界情况单独建档,与常规牌型分开统计。
九江麻将算法列表番型与牌张对照示意
校验流程

从牌例登记到一致率归档

每个新条目都要走完四步流程,牌谱回放结果与人工复核结论一致后才计入一致率统计。

01

牌例登记

记录起手牌、摸打顺序与最终成牌,标注争议点所在的具体位置。

02

逻辑复算

按条目给出的条件重新计算胡牌与番型,检查是否存在漏判或重复计番。

03

牌谱回放

将 2,400 组校验牌谱批量回放,比对各听口的剩余张数与期望值。

04

一致率归档

一致率达标后归档条目版本号,修订记录与旧编号一并保留。

频道矩阵

按判定环节查找相关算法条目

胡牌判定、番型倍率、听牌概率三个频道各自维护独立的条目清单,编号互不重复。

胡牌判定算法

覆盖基础牌型的成立条件、特殊结构识别与边张处理规则,边界牌例单独编号。

查看更多

番型倍率算法

整理各番型的基础分、叠加顺序与封顶值,多番组合按统一顺序结算。

查看更多

听牌概率分析

依据剩余牌张与已出牌序计算听口张数,折算成可横向比较的期望得分。

查看更多
常见疑问

条目使用中的判定疑问

问同一副牌在门清与点炮下判定结果是否一致?

成牌结构一致,倍率按各自路径的番型取值计算。门清在多数番型上加计一倍,点炮则按放铳方的结算口径处理,条目中会分别列出两组数值。

问番型叠加时按什么顺序计算?

先确定主干番的倍率区间,再按固定顺序补入枝叶番,所有叠加项累计后与封顶值比较,超出 128 倍的部分不再计入。

问听牌概率是否计入对手舍牌?

计入。已出牌序会同步扣减对应牌张的剩余数量,桌面上明示的牌与自己手中的牌都会参与计算,得到的是动态剩余张数。

问条目修订后旧编号还能查到吗?

能查到。每次修订保留版本号与旧编号的对应关系,旧编号会跳转到当前最新版本,修订说明中记录改动范围与生效时间。

提交一组牌例,参与条目校验

遇到条目未覆盖的牌型或与实测结果不一致的情况,可提交起手牌与摸打顺序。校验通过后编号并入对应频道,并在修订记录中标注来源。