基本胡牌公式: 麻将胡牌的基本结构是"4组面子 + 1组对子",面子可以是顺子(如123万)或刻子(如333条),对子是将牌(如22筒)。特殊牌型如七对子、十三幺等除外。
| 牌型名称 | 牌型示例 | 番数/台数 | 规则说明 |
|---|---|---|---|
| 平胡 | 123万 456条 789筒 东东 11条 | 1番/1台 | 最基本的胡牌牌型,无特殊组合 |
| 碰碰胡 | 111万 333条 555筒 东东 88筒 | 2番/4台 | 全部由刻子(三张相同)和将牌组成 |
| 清一色 | 123 234 456 567 88万 | 6番/8台 | 全部由同一种花色的牌组成 |
| 七对子 | 11万 22万 33条 44条 55筒 66筒 77筒 | 4番/4台 | 由七个对子组成的特殊牌型 |
| 十三幺 | 1万9万1条9条1筒9筒东南西北中发白 + 其中一张 | 88番/16台 | 由13种幺九牌各一张再加其中任意一张组成 |
听牌是胡牌的关键步骤,选择正确的听牌方式能大大提高胡牌概率:
麻将不仅是进攻的游戏,防守同样重要:
高级技巧: 在立直麻将中,利用振听规则进行防守,当自己处于振听状态时,即使对手打出你听的牌也不能胡,但可以借此安全度过危险期。
麻将胡牌的基本条件是:手牌必须组成特定的组合,通常是4组面子(顺子或刻子)加1组对子(将牌),共计14张牌(某些玩法是13张)。此外,还需要满足所玩麻将规则的特殊要求,如国标需要8番以上,日本麻将需要有"役"等。
振听是日本麻将中的特殊规则,分为三种情况:1) 舍牌振听:自己打过的牌不能胡;2) 同巡振听:在同一巡内,别人打出你听的牌但你没胡,之后别人再打出同样的牌也不能胡;3) 立直后振听:立直后,如果别人打出你听的牌但你没胡,之后只能自摸。振听规则增加了防守的复杂性。
国标麻将规定,胡牌时手牌的番数总和必须达到8番或以上才能胡牌。番数是根据牌型的特殊组合计算的,不同的组合有不同的番数。例如,平和是2番,碰碰胡是6番,清一色是24番等。如果手牌番数不足8番,即使符合基本胡牌条件也不能胡牌。
计算麻将番数需要熟悉各种番种及其分值:1) 先识别大番种如清一色、混一色、七对子等;2) 再计算小番种如门清、自摸、箭刻、幺九刻等;3) 注意番种之间的复合关系,有些番种不能同时计算;4) 使用番数计算工具或参考番数表进行核对。实践是掌握番数计算的最佳方法。
宝牌是日本麻将中的特色规则,可以增加胡牌番数:1) 宝牌指示牌由王牌中的岭上牌决定;2) 指示牌的下一张就是宝牌(如指示牌是3万,宝牌就是4万;指示牌是9万,宝牌就是1万);3) 手牌中每有一张宝牌,胡牌时就增加1番;4) 还有里宝牌、赤宝牌等变种规则。宝牌不构成"役",但可以增加番数。
麻将胡牌判断算法是计算机麻将程序的核心,基本思路是:
高效的胡牌算法使用递归或动态规划方法,将牌面转换为计数数组,然后尝试各种组合方式。对于麻将AI,还需要结合概率计算、对手建模和策略选择等高级技术。
// 简化的胡牌检查算法
function canWin(hand) {
// 检查七对子
if (isSevenPairs(hand)) return true;
// 检查普通牌型
for (each pair in hand) {
let remaining = removePair(hand, pair);
if (canFormMelds(remaining)) return true;
}
return false;
}