当所有玩家下注结束进行比牌处理:
服务器端
//比牌事件
bool CTableFrameSink::OnBiPaiCard(BYTE bitwince)
{
for (WORD i=0;i<m_wPlayerCount;i++)
{
//没分牌自动分牌
if (m_bTableCardFenArray[0][0]==0)
{
memcpy(m_bTableCardFenArray[0],&m_bTableCardArray[0],2);
memcpy(m_bTableCardFenArray[1],&m_bTableCardArray[2],2);
}
}
WORD wWinerUser=DeduceWiner(0,1,bitwince);
for (WORD i=0;i<m_wPlayerCount;i++)
{
if (i==wWinerUser)
bBoolWin[bitwince]=true;
else
bBoolWin[bitwince]=false;
}
CMD_S_GAMEBI gamebi;
memset(&gamebi,0,sizeof(CMD_S_GAMEBI));
for (WORD i=0;i<m_wPlayerCount;i++)
{
memcpy(gamebi.bfCardData,m_bTableCardFenArray[0],sizeof(m_bTableCardFenArray[0]));
memcpy(gamebi.bnCardData,m_bTableCardFenArray[1],sizeof(m_bTableCardFenArray[1]));
memcpy(gamebi.bBoolWin,bBoolWin,sizeof(bBoolWin));
}
gamebi.bCardTwice=bitwince;
m_pITableFrame->SendTableData(INVALID_CHAIR,SUB_S_BI_CARD,&gamebi,sizeof(gamebi));
m_firstwinder=wWinerUser;
bicount=1;
//设置定时器
m_pITableFrame->SetGameTimer(IDI_BIPAITIME,1000L,1,NULL);
return true;
}
//二次比牌事件
bool CTableFrameSink::OnBiPaiTwoCard(BYTE bitwince)
{
for (WORD i=0;i<m_wPlayerCount;i++)
{
if (m_pITableFrame->GetServerUserItem(i)!=NULL)
{

该博客详细介绍了基于网狐架构的台州四张游戏中比牌的处理过程,包括服务器端的比牌事件和二次比牌事件的逻辑,以及如何判断赢家。在比牌过程中,先比较小牌,然后赢家与其他玩家比较大牌,两次都赢者为最终胜者。比牌结束后,游戏结束并结算玩家分数。

1193

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



