棋牌平台开发教程之斗地主常用算法

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!

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

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

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

棋牌源码搭建教程之棋牌游戏AI算法

棋牌平台制作教程之php中的炸金花大小比较算法

iOS项目——微信H5棋牌牛牛斗牛出租平台项目开发环境搭建教程

网狐棋牌源码搭建教程之棋牌平台服务器架构

棋牌平台搭建教程-德州扑克算法详解