#include "StdAfx.h" #include "GameLogic.h" void CGameLogic::TheBestCard(tagAnalyseType tagCardType, BYTE btHandCardData[], BYTE btHandCardCount, BYTE btFrontCard[], BYTE btMidCard[], BYTE btBackCard[]) { if(btHandCardCount!=13) { return; } BYTE btCardCount=btHandCardCount; BYTE btCardData[13]; CopyMemory(btCardData,btHandCardData,sizeof(btCardData)); BYTE btCardData1[13]; BYTE btCardData2[13]; ZeroMemory(btCardData1, sizeof(btCardData1)); ZeroMemory(btCardData2,sizeof(btCardData2)); BYTE btCardCount1=0; BYTE btCardCount2=0; BYTE FrontCard[3]; BYTE MidCard[5]; BYTE BackCard[5]; BYTE btAllShuiShu=0; ZeroMemory(FrontCard,sizeof(FrontCard)); ZeroMemory(MidCard,sizeof(MidCard)); ZeroMemory(BackCard,sizeof(BackCard)); BYTE FrontFrontCard[3]; BYTE FrontMidCard[5]; BYTE FrontBackCard[5]; BYTE btFrontAllShuiShu=0; ZeroMemory(FrontFrontCard,sizeof(FrontFrontCard)); ZeroMemory(FrontMidCard,sizeof(FrontMidCard)); ZeroMemory(FrontBackCard,sizeof(FrontBackCard)); bool bCycling=true; bool bFront=false; bool bMid=false; bool bBack=false; bool bFirst=true; BYTE btFront=0; BYTE btMid=0; BYTE btBack=0; tagAnalyseType tagCardType1; tagAnalyseType tagCardType2; ZeroMemory(&tagCardType1,sizeof(tagCardType1)); ZeroMemory(&tagCardType2,sizeof(tagCardType2)); BYTE btTemp[13]; ZeroMemory(btTemp,sizeof(btTemp)); if(tagCardType.bStraightFlush) //有同花顺 { for(int i=0;ibtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else if(tagCardType1.bFourSame) //有铁支 { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbThreeSame[0]])) { btTemp[0]=MidCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else if(tagCardType2.bTwoPare)//剩下两对 { MidCard[4]=btCardData2[tagCardType2.cbTwoPare[3]]; FrontCard[0]=btCardData2[tagCardType2.cbTwoPare[0]]; FrontCard[1]=btCardData2[tagCardType2.cbTwoPare[1]]; FrontCard[2]=btCardData2[tagCardType2.cbTwoPare[2]]; } else if(tagCardType2.bOnePare)//剩下一对 { for(int k=3;k>=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=MidCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { MidCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else { if(tagCardType1.bGourd) //有葫芦 { bool bThreeSame=false; for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } else if(tagCardType1.bFlush) //有同花 { bool bThreeSame=false; if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(tagCardType1.bStraight) //有顺子 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType1.bStraight) //有顺子 { bool bThreeSame=false; if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else if(tagCardType1.bTwoPare) //有两对 { if(tagCardType1.btOnePare>=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=MidCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { MidCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } else if(tagCardType1.bOnePare) //有一对 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else //散牌 { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); MidCard[0]=btCardData1[0]; MidCard[1]=btCardData1[4]; MidCard[2]=btCardData1[5]; MidCard[3]=btCardData1[6]; MidCard[4]=btCardData1[7]; FrontCard[0]=btCardData1[1]; FrontCard[1]=btCardData1[2]; FrontCard[2]=btCardData1[3]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType.bFourSame) //铁支 { for(int i=0;i=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbTwoPare[0]]) &&GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbTwoPare[2]])) { btTemp[0]=BackCard[4]=btCardData2[k]; break; } } //RemoveCard(btTemp,1,btCardData2,btCardCount2); MidCard[4]=btCardData2[tagCardType2.cbTwoPare[3]]; FrontCard[0]=btCardData2[tagCardType2.cbTwoPare[0]]; FrontCard[1]=btCardData2[tagCardType2.cbTwoPare[1]]; FrontCard[2]=btCardData2[tagCardType2.cbTwoPare[2]]; } else if(tagCardType2.bOnePare)//剩下一对 { btTemp[0]=FrontCard[0]=btCardData2[tagCardType2.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData2[tagCardType2.cbOnePare[1]]; RemoveCard(btTemp,2,btCardData2,btCardCount2); FrontCard[2]=btCardData2[0]; BackCard[4]=btCardData2[2]; MidCard[4]=btCardData2[1]; } else //剩下散牌 { BackCard[4]=btCardData2[4]; MidCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else { if(tagCardType1.bGourd) //有葫芦 { bool bThreeSame=false; for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=BackCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { BackCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } else if(tagCardType1.bFlush) //有同花 { bool bThreeSame=false; if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=BackCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { //这里有问题 zyy BackCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(tagCardType1.bStraight) //有顺子 { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=BackCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { BackCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType1.bStraight) //有顺子 { bool bThreeSame=false; if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { bThreeSame=true; CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } if(bThreeSame==false) //前敦不能为三条 { for(int j=0;j=0;k--) { if(GetCardLogicValue(btCardData2[k])!=GetCardLogicValue(btCardData2[tagCardType2.cbOnePare[0]])) { btTemp[0]=BackCard[4]=btCardData2[k]; break; } } RemoveCard(btTemp,1,btCardData2,btCardCount2); CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } else //剩下散牌 { BackCard[4]=btCardData2[3]; CopyMemory(FrontCard,btCardData2,sizeof(FrontCard)); } if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType1.bThreeSame) //有三条 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else if(tagCardType1.bTwoPare) //有两对 { if(tagCardType1.btOnePare>=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[4]=btCardData1[2]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } else if(tagCardType1.bOnePare) //有一对 { for(int j=0;jbtFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } else //散牌 { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); BackCard[4]=btCardData1[8]; MidCard[0]=btCardData1[0]; MidCard[1]=btCardData1[4]; MidCard[2]=btCardData1[5]; MidCard[3]=btCardData1[6]; MidCard[4]=btCardData1[7]; FrontCard[0]=btCardData1[1]; FrontCard[1]=btCardData1[2]; FrontCard[2]=btCardData1[3]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && (btAllShuiShu>btFrontAllShuiShu || (CompareCard(FrontFrontCard, FrontCard, 3, 3, m_bClassicRule) && btAllShuiShu == btFrontAllShuiShu))) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } } } } else if(tagCardType.bGourd) //有葫芦 { bool bThreeSame=false; for(int i=0;i=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[3]=btCardData1[2]; BackCard[4]=btCardData1[3]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[4]=btCardData1[2]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[3]=btCardData1[2]; BackCard[4]=btCardData1[3]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[4]=btCardData1[2]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[3]=btCardData1[2]; BackCard[4]=btCardData1[3]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;j=3) { btCardCount1=btCardCount; CopyMemory(btCardData1,btCardData,sizeof(btCardData[0])*btCardCount1); btTemp[0]=FrontCard[0]=btCardData1[tagCardType1.cbOnePare[0]]; btTemp[1]=FrontCard[1]=btCardData1[tagCardType1.cbOnePare[1]]; btTemp[2]=MidCard[0]=btCardData1[tagCardType1.cbOnePare[2]]; btTemp[3]=MidCard[1]=btCardData1[tagCardType1.cbOnePare[3]]; btTemp[4]=MidCard[2]=btCardData1[tagCardType1.cbOnePare[4]]; btTemp[5]=MidCard[3]=btCardData1[tagCardType1.cbOnePare[5]]; RemoveCard(btTemp,6,btCardData1,btCardCount1); FrontCard[2]=btCardData1[0]; MidCard[4]=btCardData1[1]; BackCard[4]=btCardData1[2]; if(bFirst) { if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=ThreeDunAllShuiShu(FrontFrontCard,FrontMidCard,FrontBackCard); bFirst=false; } } else { btAllShuiShu=ThreeDunAllShuiShu(FrontCard,MidCard,BackCard); if (CompareCard(FrontCard, MidCard, 3, 5, m_bClassicRule) && CompareCard(MidCard, BackCard, 5, 5, m_bClassicRule) && IsBiggerThanFront(FrontFrontCard,FrontMidCard,FrontBackCard,FrontCard,MidCard,BackCard)) { CopyMemory(FrontFrontCard,FrontCard,sizeof(FrontCard)); CopyMemory(FrontMidCard,MidCard,sizeof(MidCard)); CopyMemory(FrontBackCard,BackCard,sizeof(BackCard)); btFrontAllShuiShu=btAllShuiShu; } } } else { for(int j=0;jGetCardType(btFrontMidCard,5,btSpecialCard)) { btCompare++; } else if(GetCardType(btMidCard,5,btSpecialCard)GetCardType(btFrontBackCard,5,btSpecialCard)) { btCompare++; } else if(GetCardType(btBackCard,5,btSpecialCard)btFrontWin) { return true; } else if(btWin==btFrontWin) { if(btCompare>=1) { return true; } else { if(btCanWin>btFrontCanWin) { return true; } else { return false; } } } else { return false; } } else if(btShuiShu==btFrontShuiShu+1) { if(btFrontWin-btWin>=4) { return false; } else { return true; } } else if(btShuiShu+1==btFrontShuiShu) { if(btWin-btFrontWin>=4) { return true; } else { return false; } } else if(btShuiShu>btFrontShuiShu) { return true; } else if(btShuiShu