zoukankan      html  css  js  c++  java
  • 极具复杂性的麻将玩法研究(规则篇)

    准备研究下家乡麻将的算法实现,自认为要弄出算法复杂度较高,在此先发下规则

    牌型:万条筒,东西南北,红中发财,白板,春夏秋冬梅兰竹菊,一共144张牌。

    特殊规则:

    每位玩家十六张牌,开局每人两千子,一家玩家没有本轮结束

    出一张牌作为金子(出的那张不可被抽取)金子可以当做任何牌(除了可以直接补花的牌)我认为这点造成了复杂度增加,当你有三张金子时,组合太多情况了

    八花及白板抽到时可以补花(花或白板为金时不可放出补花)  杠可以补花

    若打金或将金进行补花,玩家退出游戏计0胡,三家进行照算番数

    胡牌条件:由于十六张牌,因此为333332格式,五副顺子或对子加一副将

    番数计算:

    计算分为四、底胡和台数(番数)庄家头庄底胡20,头庄庄家胡后为二波庄,底胡增加20,三波庄时底胡就为60

    顺子不算四,对子中,二到八的万条筒算半四,一九万条筒、东西南北中发算一四,暗的翻倍,杠的四倍,所以最多暗杠时就为八四。白板和春夏秋冬梅兰竹菊这些直接补花的一张就算一四,单张金算一四(只用在未胡牌者中,因胡牌者金放顺子中则不算四,放对子中也不因此多算四)

    台数(番数):东南西北属于自己的方位,有一副对子算一台(靠金组成的也算,杠的也只算一台)

    红中发财的对子算一台(靠金组成也算)

    一张金算一台

    春夏秋冬梅兰竹菊属于自己的算一台,凑够春夏秋冬或梅兰竹菊算两台,花是金时,按方位和金算台数相加(比如夏是我,开的春是金,我拿了夏则算两台,秋冬只算一台)

    白板两张算一台,三张两台,四张三台

    计算:四的总数乘于四,向上取整为胡数(二四半为10胡,三四为20胡)

    然后乘于2的台数次方(胡牌者多加底胡)即为本局胡数(上限800,特殊情况除外)

    胡牌者收三家,未胡牌者间互给,庄家和他人算再翻倍给

    特殊牌型:

    平胡:100胡(不另算台数底胡)

    三金倒:800胡(开局补花后三金,直接胡牌)

    清一色:800胡(门前有补花的版本或花)

    大四喜:800胡(东西南北都有,因为胡牌时十七张,其他随意)

    天胡:800胡(庄家头子摸完补完花后胡牌)

    地胡:800胡(庄家打出第一张牌后其他人胡)

    对对胡:一台

    混一色:一台

    自摸:一台

    八花:全收三家

    胡牌后八台及以上:全收三家

    门前清一色:全收三家(没有白板及花,金也必须同类花色)

  • 相关阅读:
    模块与包的导入
    递归
    day04
    装饰器2_根据认证来源判断用户和计算登录时间
    装饰器1_统计时间函数装饰欢迎登录函数
    tail -f a.txt | grep 'python'
    函数
    内置函数1
    python模块整理
    VBS恶作剧代码
  • 原文地址:https://www.cnblogs.com/Scohura/p/6072244.html
Copyright © 2011-2022 走看看