基于网狐架构台州四张游戏的开发-发牌处理

本文介绍了如何在基于网狐架构的台州四张游戏中进行发牌处理。首先定义了扑克数组,然后通过`RandCard`函数实现随机发牌。在游戏开始时,调用`OnEventGameStart`函数,使用`RandCard`来分发扑克,并将扑克数据通过`CMD_S_GameStart`结构传递给客户端。客户端在接收到消息后更新界面并显示扑克。
摘要由CSDN通过智能技术生成

比牌为牌九规则,扑克为32张,首先定义扑克数组

//静态变量
const BYTE CGameLogic::m_bCardArray[32]=
{
  0x02,    0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C, //方块 A - K
      0x14,  0x16,0x17,0x18,  0x1A,    //梅花 A - K
  0x22,    0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C, //红桃 A - K
 0x31,   0x33,0x34,  0x36,0x37,0x38,  0x3A,    //黑桃 A - K
};
 0x01为方块A  0x0C为方块k

 0x11为梅花A  0x1C为梅花k

 0x21为红桃A  0x2C为红桃k

 0x31为黑桃A  0x3C为黑桃k

先处理发牌部分,放在游戏逻辑类m_GameLogic,写成发牌函数.RandCard

//混乱扑克
void CGameLogic::RandCard(BYTE bCardBuffer[], BYTE bBufferCount)
{
 BYTE bSend=0,bStation=0,bCardList[CountArray(m_bCardArray)];
 CopyMemory(bCardList,m_bCardArray,sizeof(m_bCardArray));
 static long int dwRandCount=0L;
 srand((unsigned)time(NULL)+dwRandCount++);
 do
 {
  bStation=rand()%(CountArray(m_bCardArray)-bSend);
  bCardBuffer[bSend++]=bCardList[bStation];
  bCardList[bStation]=bCardList[CountArray(m_bCardArray)-bSend];
 } while (bSend<bBufferCount);

 return;
}

bCardBuffer为发牌数组,bBufferCount为发牌数组长度

在游戏开始部分

//游戏开始
bool __cdecl CTableFrameSink::OnEventGameStart()

函数中调用该函数

//游戏开始
bool __cdecl C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值