比牌为牌九规则,扑克为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 CTableFrameSink::OnEventGameStart()
{
&nbs

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

1878

被折叠的 条评论
为什么被折叠?



