棋牌游戏判断牌型算法---适合所有的棋牌游戏

 

斗地主牌型基本算法升级版本

 扫描二维码,添加好友,一起探讨斗地主游戏开发  
 

                     好久没更新博客了,前段时间和朋友一起开了一个公司 做APP,最后失败了。现在又开始做棋牌游戏了,最近在看网狐的源码,发现里面斗地主的基本算法太强大了,现在想想我原来的算法简直是弱爆了,分享一下 希望能对你有一点点帮助。以下主要涉及到判断牌型,牌型大小比较2块,如果你想了解更多关于棋牌游戏的东西请访问我的棋牌游戏专栏

 

大家写过游戏都会发现,每一种游戏牌的组成类型不一样的,比如斗地主判断牌型,和德州判断牌型就不一样,最近写德州扑克游戏发现其实所有判断牌型的算法都是一样的。

挑出牌出4张,3张,2张,1张出现的次数,然后各自组合看能出什么样的牌型,最后就能确定下来具体的牌型。下面是具体的代码实现。。。。

 

一.判断牌型

定义一个结构来表示每张相同牌的信息。

//分析结构

 

structtagAnalyseResult
{
BYTE                         cbFourCount;                       //四张数目
BYTE                         cbThreeCount;                      //三张数目
BYTE                         cbDoubleCount;                     //两张数目
BYTE                         cbSignedCount;                    //单张数目
BYTE                         cbFourCardData[MAX_COUNT];        //四张克
BYTE                         cbThreeCardData[MAX_COUNT];       //三张扑克
BYTE                         cbDoubleCardData[MAX_COUNT];      //两张扑克
BYTE                         cbSignedCardData[MAX_COUNT];      //单张扑克
};

 

 

 

 

 

 

当我们需要判断牌型的时候,先分析牌把对应的数据存放到上面的结构体。然后根据不同牌型的规则来判断即可。主要通过下面2个函数.话不多说直接上源代码:

1.      //分析扑克(参数:1将要出牌的数据,出牌的张数,out存放分析的结构体)

 

void CGameLogic::AnalysebCardData(constBYTE cbCardData[], BYTE cbCardCount, tagAnalyseResult & AnalyseResult)
{
         //设置结果
         ZeroMemory(&AnalyseResult,sizeof(AnalyseResult));
 
         //扑克分析
         for(BYTE i=0;i<cbCardCount;i++)
         {
                   //变量定义
                   BYTE cbSameCount=1,cbCardValueTemp=0;
                   BYTE cbLogicValue=GetCardLogicValue(cbCardData[i]);
 
                   //搜索同牌
                   for(BYTE j=i+1;j<cbCardCount;j++)
        
  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值