极具复杂性的麻将玩法研究(规则篇)
准备研究下家乡麻将的算法实现,自认为要弄出算法复杂度较高,在此先发下规则
牌型:万条筒,东西南北,红中发财,白板,春夏秋冬梅兰竹菊,一共144张牌。
特殊规则:
每位玩家十六张牌,开局每人两千子,一家玩家没有本轮结束
出一张牌作为金子(出的那张不可被抽取)金子可以当做任何牌(除了可以直接补花的牌)我认为这点造成了复杂度增加,当你有三张金子时,组合太多情况了
八花及白板抽到时可以补花(花或白板为金时不可放出补花) 杠可以补花
若打金或将金进行补花,玩家退出游戏计0胡,三家进行照算番数
胡牌条件:由于十六张牌,因此为333332格式,五副顺子或对子加一副将
番数计算:
计算分为四、底胡和台数(番数)庄家头庄底胡20,头庄庄家胡后为二波庄,底胡增加20,三波庄时底胡就为60
顺子不算四,对子中,二到八的万条筒算半四,一九万条筒、东西南北中发算一四,暗的翻倍,杠的四倍,所以最多暗杠时就为八四。白板和春夏秋冬梅兰竹菊这些直接补花的一张就算一四,单张金算一四(只用在未胡牌者中,因胡牌者金放顺子中则不算四,放对子中也不因此多算四)
台数(番数):东南西北属于自己的方位,有一副对子算一台(靠金组成的也算,杠的也只算一台)
红中发财的对子算一台(靠金组成也算)
一张金算一台
春夏秋冬梅兰竹菊属于自己的算一台,凑够春夏秋冬或梅兰竹菊算两台,花是金时,按方位和金算台数相加(比如夏是我,开的春是金,我拿了夏则算两台,秋冬只算一台)
白板两张算一台,三张两台,四张三台
计算:四的总数乘于四,向上取整为胡数(二四半为10胡,三四为20胡)
然后乘于2的台数次方(胡牌者多加底胡)即为本局胡数(上限800,特殊情况除外)
胡牌者收三家,未胡牌者间互给,庄家和他人算再翻倍给
特殊牌型:
平胡:100胡(不另算台数底胡)
三金倒:800胡(开局补花后三金,直接胡牌)
清一色:800胡(门前有补花的版本或花)
大四喜:800胡(东西南北都有,因为胡牌时十七张,其他随意)
天胡:800胡(庄家头子摸完补完花后胡牌)
地胡:800胡(庄家打出第一张牌后其他人胡)
对对胡:一台
混一色:一台
自摸:一台
八花:全收三家
胡牌后八台及以上:全收三家
门前清一色:全收三家(没有白板及花,金也必须同类花色)