棋牌平台架设教程之斗地主核心算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了棋牌平台架设教程之斗地主核心算法相关的知识,希望对你有一定的参考价值。

   首先,要弄清楚斗地主的牌型有哪些。可以参考QQ游戏给出的介绍,如下:

        火箭:即双王(大王和小王),最大的牌。

        炸弹:四张同数值牌(如四个 7 )。

        单牌:单个牌(如红桃 5 )。

        对牌:数值相同的两张牌(如梅花 4+ 方块 4 )。

        三张牌:数值相同的三张牌(如三个 J )。

        三带一:数值相同的三张牌 + 一张单牌或一对牌。例如: 333+6 或 444+99 

        单顺:五张或更多的连续单牌(如: 45678 或 78910JQK )。不包括 2 点和双王。

        双顺:三对或更多的连续对牌(如: 334455 、 7788991010JJ )。不包括 2 点和双王。 

       三顺:二个或更多的连续三张牌(如: 333444 、 555666777888 )。不包括 2 点和双王。

        飞机带翅膀:三顺+同数量的单牌(或同数量的对牌)。 

        如: 444555+79 或 333444555+7799JJ 

        四带二:四张牌+两手牌。(注意:四带二不是炸弹)。

       如: 5555 + 3 + 8 或 4444 + 55 + 77 。

    其次,设计CRobot类。

        属性包括:原始牌(数) ,当前牌(数) ,前一轮出牌(数) ,当前出牌(数) ,当前分数 ,是否Pass ,等待时间。

        方法包括:获得原始牌(数),牌面类型函数 ,排序函数 ,按牌面类型排序函数,出牌函数。

    最后,分牌算法。怎样模拟人工洗牌,这是一个难题。不过这难不倒我。

        先将54张牌分成6 * 9的矩阵。

        (1) 交换相邻的两行,1和2,3和4,5和6 交换。

        (2) 交换相邻的两列,1和2,3和4,5和6,7和8 交换。

        (3) 随即选择两行两列进行交换。

        以上步骤重复50~100次。然后依次取第一个17张为玩家1的牌,第二个17张为玩家2的牌,第三个17张为玩家3的牌,剩余的3张为底    牌。OK!

    具体的细节可以去这里棋牌源码架设 http://www.yasewl.com/


本文出自 “棋牌源码搭建教程” 博客,请务必保留此出处http://13114207.blog.51cto.com/13104207/1946314

以上是关于棋牌平台架设教程之斗地主核心算法的主要内容,如果未能解决你的问题,请参考以下文章

棋牌平台制作教程之斗地主选牌算法

源码架设教程之麻将AI算法与数据结构棋牌

棋牌游戏开发 斗地zhu 牛牜十三氺私人定制

棋牌搭建教程之最新傲玩至尊版手机棋牌源码架设技巧

棋牌高防服务器架设教程

十三水,十三张,斗地主,牛牛的牌型搜索思考