南京麻将是流行于南京及周边地区的一种麻将玩法,具有独特的规则和计分方式。游戏使用136张牌(无花牌),支持2-4人游戏,通常以4人游戏为主。
南京麻将的基本胡牌型为4组面子(顺子或刻子)加上一对将牌。算法需要遍历手牌,判断是否符合此结构。
混牌可以替代任何牌,算法需要将混牌视为万能牌,尝试所有可能的替代组合,判断是否能够形成胡牌型。
七对子:手牌中有7个对子即可胡牌,无需满足4面子1将牌的结构。
十三幺:由19万、19条、19筒、东南西北中发白各一张,再加其中任意一张组成。
遍历所有可能的摸牌,判断加入该牌后是否能形成胡牌型,从而确定当前手牌的听牌范围。
南京麻将胡牌算法的复杂度主要来自:
优化后的算法可以在O(n³)时间内完成胡牌判断,其中n为手牌数量。
开局后快速评估手牌,确定做牌方向:
混牌不宜过早使用,留作听牌时优化牌型。当手牌较差时,可用混牌快速组成面子。
多面听优于单面听,生张听牌胡牌概率大但风险高,熟张听牌安全但容易被防。
通过出牌速度、表情控制误导对手,故意打出安全牌让对手放松警惕。
是的,混牌在南京麻将中可以替代任何牌来组成顺子、刻子或将牌。但需要注意,有些玩法规定混牌不能用于组成七对子。
最终得分 = 底分 × 各种牌型的倍数乘积。例如:门清七对自摸的计分为:底分2分 × 门清2倍 × 七对4倍 = 16分,每家支付16分,胡牌者共得48分。
传统南京麻将规则不允许一炮多响,即一张牌只能点炮给一家。但有些现代玩法或线上游戏修改了规则,允许一炮多响,具体需根据游戏前约定。
可以,这称为"杠上开花"。如果是自己摸到杠牌后补张胡牌,计分按自摸计算且加倍;如果是别人杠牌后你补张胡牌,则按点炮计算。
1. 使用位运算表示手牌,提高判断效率;
2. 对常见胡牌型建立缓存,避免重复计算;
3. 优先判断特殊牌型(七对、十三幺);
4. 使用DFS+剪枝算法减少搜索空间;
5. 对混牌处理采用动态规划方法。