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

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

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

    特殊规则:

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

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

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

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

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

    番数计算:

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

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

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

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

    一张金算一台

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

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

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

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

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

    特殊牌型:

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

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

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

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

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

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

    对对胡:一台

    混一色:一台

    自摸:一台

    八花:全收三家

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

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

  • 相关阅读:
    centos python sh recode command not find的解决办法
    Webmail邮件攻防实战技术总结[转]
    关于c#字符串三种逆转方法及性能比较的另外看法
    随机生成10个含有1万个qq邮箱的文件(Python)
    C#对IE使用Proxy(代理)
    sohu邮箱的联系人获取
    Python 的二进制文件读写需要注意的地方
    hotmail解码遇到的&#解码问题
    利用cookie收取Hotmail信件
    CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\web\4b49f661\23a749fc\App_Web_default.aspx.cdcab7d2.zii77dc.dll
  • 原文地址:https://www.cnblogs.com/Scohura/p/6072244.html
Copyright © 2011-2022 走看看