一、南昌麻将算法概览
南昌麻将作为南昌及周边地区最受欢迎的棋牌玩法,其核心算法围绕"精"(财神牌)展开。与普通麻将不同,南昌麻将的计分主要依据精的数量、冲关倍数以及胡牌番数,形成了独特的算法体系。
掌握南昌麻将,必须吃透以下三大核心算法:
- 胡牌判断算法——判断手牌是否满足胡牌条件;
- 精的冲关算法——计算精牌的分值与冲关倍数;
- 计分番数算法——根据胡牌方式计算最终得分。
#南昌麻将
#胡牌算法
#精算法
#冲关
#番数计算
南昌麻将算法体系总览
二、核心胡牌算法
南昌麻将胡牌的基本判断依据是手牌能否组成3n+2的结构:
- 顺子:同花色三张连续牌,如1万+2万+3万;
- 刻子:三张相同牌,如三个5筒;
- 将牌:两张相同牌,如两个红中。
特殊胡牌牌型:七对(7个对子)、碰碰胡(4刻子+1对将)等,不需要满足3n+2的标准结构。
💡 举例
手牌:1万2万3万 + 5筒5筒5筒 + 东风东风 + 8条9条
结构:1组顺子(1-2-3万) + 1组刻子(5筒) + 1对将(东风) + 1组听牌(8-9条听7条或10条) → 满足3n+2(n=3)
胡牌算法:顺子+刻子+将牌 组合示意
三、精的算法详解
精是南昌麻将的灵魂。开牌后从牌墙末尾翻出一张牌,翻出的牌为正精,其下一张为副精(按牌序循环)。
📋 精的确定方式
| 翻出的牌 | 正精 | 副精 |
| 5万 | 5万 | 6万 |
| 9筒 | 9筒 | 1筒(循环) |
| 东风 | 东风 | 南风 |
| 红中 | 红中 | 发财 |
💰 精的计分标准
| 精类型 | 单个分值 | 说明 |
| 正精 | 2分 | 翻出的牌本身 |
| 副精 | 1分 | 正精的下一张牌 |
⚡ 冲关算法(精的数量达到3个以上)
| 精的数量 | 冲关倍数 | 精分计算示例 |
| 1~2个 | 1倍(无冲关) | 精分 = 正精×2 + 副精×1 |
| 3个 | 2倍 | 精分 = (基本分) × 2 |
| 4个 | 3倍 | 精分 = (基本分) × 3 |
| 5个 | 4倍 | 精分 = (基本分) × 4 |
| 6个 | 5倍 | 精分 = (基本分) × 5 |
| 7个 | 6倍 | 精分 = (基本分) × 6 |
| 8个及以上 | 7倍封顶 | 精分 = (基本分) × 7 |
👆 注:不同南昌麻将线下规则可能存在差异,常见为3精起冲关,具体请以当地玩法为准。
🔍 冲关示例
玩家手中有:2个正精 + 2个副精
基本精分 = 2×2 + 2×1 = 6分
精数 = 4个 → 冲关倍数 = 3倍
冲关后精分 = 6 × 3 = 18分
四、完整计分算法表
最终得分 = 精分(含冲关倍数) × 胡牌番数
🏆 胡牌番数速查表
| 胡牌类型 | 番数 | 说明 |
| 平胡 | 1番 | 标准3n+2结构胡牌 |
| 七对 | 4番 | 7个对子组成 |
| 碰碰胡 | 4番 | 4组刻子+1对将 |
| 清一色 | 8番 | 全部同一花色(万/条/筒) |
| 混一色 | 4番 | 同一花色+字牌 |
| 字一色 | 16番 | 全部为字牌(风+箭) |
| 杠上开花 | 加1番 | 杠牌后摸牌即胡 |
| 抢杠胡 | 加1番 | 抢他人补杠的牌胡 |
| 海底捞月 | 加1番 | 摸最后一张牌胡 |
| 天胡 | 加5番 | 庄家摸牌前直接胡 |
| 地胡 | 加5番 | 闲家第一次摸牌即胡 |
🧮 综合计分示例
玩家手中有3个正精+2个副精,胡了七对。
● 基本精分 = 3×2 + 2×1 = 8分
● 精数 = 5个 → 冲关倍数 = 4倍
● 冲关后精分 = 8 × 4 =
32分
● 七对番数 =
4番
● 最终得分 = 32 × 4 =
128分 🎉
计分算法:精分×番数 流程示意
五、特殊牌型算法
南昌麻将除了基本胡牌,还有以下几种特殊牌型需要特殊算法处理:
- 七对:全部由对子组成,共7对,不需要顺子和刻子,番数4番。
- 碰碰胡:4组刻子+1对将牌,番数4番。
- 清一色:手牌全部为同一花色(万/条/筒),番数8番。
- 字一色:手牌全部为字牌(东、南、西、北、中、发、白),番数16番。
- 杠上开花:在杠牌后摸到的牌恰好自摸,额外+1番。
- 十三烂:13张手牌互不关联(不成对、不成顺、不成刻),是一种特殊的"烂胡"牌型,具体规则因地方玩法而异。
在实际计算中,若同时满足多种特殊牌型(如清一色七对),番数可叠加累计,让得分更加可观。
六、算法实现思路
以下是南昌麻将核心算法的伪代码实现思路,方便开发者参考或自测:
function 判断胡牌(手牌):
// 标准3n+2结构
for 每张牌 as 将牌候选:
if 手牌中该牌数量 >= 2:
剩余牌 = 手牌 - 2张该牌
if 能组成n组顺子或刻子:
return true
// 七对判断
if 手牌是7个对子:
return true
return false
function 计算精分(手牌, 正精, 副精):
正精数 = 手牌中正精数量
副精数 = 手牌中副精数量
基本精分 = 正精数 * 2 + 副精数 * 1
总数 = 正精数 + 副精数
if 总数 >= 3:
倍数 = 总数 - 1
return 基本精分 * 倍数
else:
return 基本精分
function 计算最终得分(手牌, 胡牌类型):
精分 = 计算精分(手牌)
番数 = 胡牌类型对应的番数
return 精分 * 番数
以上为简化版算法,实际开发中还需考虑:精的特殊替代功能、多玩家精分比较、庄闲加倍等因素。
七、南昌麻将常见问题解答
南昌麻将中"精"到底是什么?
精是南昌麻将的财神牌,开牌后翻出的一张牌决定正精,其下一张为副精。精可以代替任何牌来帮助胡牌,并且本身拥有分值(正精2分/个,副精1分/个)。
正精和副精怎么确定?
翻出的牌本身是正精,正精的同花色下一张是副精。比如翻出5万,正精=5万,副精=6万;若翻出9万,正精=9万,副精=1万(循环)。字牌按东南西北中发白顺序循环确定副精。
什么叫"冲关"?
当手中的精达到3个(或4个,视规则而定)及以上时,精分会按照一定倍数翻倍,这就是"冲关"。精越多,倍数越高,冲关后的精分也越恐怖。
南昌麻将最终得分怎么算?
最终得分 = 精分(含冲关翻倍)× 胡牌番数。例如精分30分、胡的是七对4番,那么最终得分就是30×4=120分。
南昌麻将能吃牌吗?
不能。南昌麻将不允许吃牌,只能碰牌和杠牌。这让打牌策略更注重碰杠和精的运用。
"霸王精"是什么意思?
霸王精通常指玩家手中有4个或更多精的情况,在冲关基础上还会有额外加成,属于比较少见的大牌局面。
十三烂是什么?南昌麻将怎么打十三烂?
十三烂是南昌麻将特有的胡牌方式,要求13张手牌互不关联:不能有对子、不能组成顺子或刻子,最后摸到任意一张牌即可胡牌。具体规则因地方玩法不同有细微差别,建议和牌友确认清楚再玩。