64,662
社区成员
发帖
与我相关
我的任务
分享
//听牌分析
BYTE CGameLogic::AnalyseTingCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbItemCount, DWORD dwChiHuRight)
{
//变量定义
tagChiHuResult ChiHuResult;//胡牌结果定义
ZeroMemory(&ChiHuResult,sizeof(ChiHuResult));//结构清零
//构造麻将
BYTE cbCardIndexTemp[MAX_INDEX];
CopyMemory(cbCardIndexTemp,cbCardIndex,sizeof(cbCardIndexTemp));//拷贝cbCardIndex[MAX_INDEX]
//听牌分析
for (BYTE i=0;i<MAX_INDEX;i++)
{
//空牌过滤
if (cbCardIndexTemp[i]==0)//某张牌的计数为零
continue;
//听牌处理
cbCardIndexTemp[i]--;//为什么要减1?
//听牌判断
for (BYTE j=0;j<MAX_INDEX;j++)
{
//胡牌分析
BYTE cbCurrentCard=SwitchToCardData(j);
BYTE cbHuCardKind=AnalyseChiHuCard(cbCardIndexTemp,WeaveItem,cbItemCount,cbCurrentCard,dwChiHuRight,ChiHuResult);
//结果判断
if (cbHuCardKind!=CHK_NULL)
return WIK_LISTEN;
}
//还原处理
cbCardIndexTemp[i]++;//为什么又加1?
}
return WIK_NULL;
}