Files

217 lines
10 KiB
C
Raw Permalink Normal View History

2026-02-13 14:34:15 +08:00
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE
/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ơ<EFBFBD>
<EFBFBD><EFBFBD> <EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD>ƣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD> <EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ֻ<EFBFBD>ܰ<EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD>ɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>˳С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱȴ<EFBFBD><EFBFBD>ɵ<EFBFBD>ͬ<EFBFBD><EFBFBD>˳<EFBFBD>Ĵ<EFBFBD>С<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10 <EFBFBD><EFBFBD> J <EFBFBD><EFBFBD> Q <EFBFBD><EFBFBD> K, A <EFBFBD><EFBFBD> 10 <EFBFBD><EFBFBD> J <EFBFBD><EFBFBD> Q <EFBFBD><EFBFBD> K <EFBFBD><EFBFBD><EFBFBD><EFBFBD> >7<EFBFBD><EFBFBD> 8 <EFBFBD><EFBFBD>9 <EFBFBD><EFBFBD>10 <EFBFBD><EFBFBD>J
<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ը<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȼͬ<EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD>ը<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱȴ<EFBFBD><EFBFBD>ɵ<EFBFBD>ը<EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>A <EFBFBD><EFBFBD> A <EFBFBD><EFBFBD> A<EFBFBD><EFBFBD>A>A <EFBFBD><EFBFBD> A <EFBFBD><EFBFBD> A <EFBFBD><EFBFBD>> 3 <EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD>3<EFBFBD><EFBFBD> 3<EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3 <EFBFBD><EFBFBD> 3 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD>«<EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD> 3 ͬ<EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٱȶ<EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <EFBFBD><EFBFBD> 4 <EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ź<EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>Ӯ 10 ˮ<EFBFBD><EFBFBD> 4 <EFBFBD><EFBFBD> 4 <EFBFBD><EFBFBD> 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD>ߴ<EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ճɵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>С<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڼ١<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
///////////////////////////////////////////////////////////////////////////////////////////////*/
#pragma once
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
#define CT_INVALID 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_SINGLE 1 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_ONE_DOUBLE 2 //ֻ<><D6BB>һ<EFBFBD><D2BB>
#define CT_FIVE_TWO_DOUBLE 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_THREE 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_FIVE_MIXED_FLUSH_NO_A 5 //ûA<C3BB><41>˳
#define CT_FIVE_MIXED_FLUSH_FIRST_A 6 //A<><41>ǰ˳<C7B0><CBB3>
#define CT_FIVE_MIXED_FLUSH_BACK_A 7 //A<>ں<EFBFBD>˳<EFBFBD><CBB3>
#define CT_FIVE_FLUSH 8 //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_FIVE_THREE_DEOUBLE 9 //<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
#define CT_FIVE_FOUR_ONE 10 //<2F>Ĵ<EFBFBD>һ<EFBFBD><D2BB>
#define CT_FIVE_STRAIGHT_FLUSH_NO_A 11 //ûAͬ<41><CDAC>˳
#define CT_FIVE_STRAIGHT_FLUSH_FIRST_A 12 //A<><41>ǰͬ<C7B0><CDAC>˳
#define CT_FIVE_STRAIGHT_FLUSH_BACK_A 13 //A<>ں<EFBFBD>ͬ<EFBFBD><CDAC>˳
#define CT_FIVE_BOMB 44 //<2F><>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>
#define CT_FIVE_MID_THREE_DEOUBLE 100 //<2F>жպ<D0B6>«
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_THIRTEEN_FLUSH 26 //ͬ<><CDAC>ʮ<EFBFBD><CAAE>ˮ
#define CT_THIRTEEN 25 //ʮ<><CAAE>ˮ
#define CT_TWELVE_KING 24 //ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define CT_THREE_STRAIGHTFLUSH 23 //<2F><>ͬ<EFBFBD><CDAC>˳
#define CT_THREE_BOMB 22 //<2F><>ը<EFBFBD><D5A8>
#define CT_ALL_BIG 21 //ȫ<><C8AB>
#define CT_ALL_SMALL 20 //ȫС
#define CT_SAME_COLOR 19 //<2F><>һɫ
#define CT_FOUR_THREESAME 18 //<2F><><EFBFBD>׳<EFBFBD><D7B3><EFBFBD>
#define CT_FIVEPAIR_THREE 17 //<2F><><EFBFBD>Գ<EFBFBD><D4B3><EFBFBD>
#define CT_SIXPAIR 16 //<2F><><EFBFBD>԰<EFBFBD>
#define CT_THREE_FLUSH 15 //<2F><>ͬ<EFBFBD><CDAC>
#define CT_THREE_STRAIGHT 14 //<2F><>˳<EFBFBD><CBB3>
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define CARD_MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define CARD_MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define CARD_DW 16
#define CARD_XW 15
//<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
#define CARD_COUNT 52 //<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
//<2F><><EFBFBD><EFBFBD><EFBFBD>
struct tagAnalyseData
{
BYTE bOneCount ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE bTwoCount ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE bThreeCount ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE bFourCount ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE bFiveCount ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE bOneFirst[13]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE bTwoFirst[13]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE bThreeFirst[13]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE bFourFirst[13]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
BYTE bFiveFirst[13]; //<2F><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
bool bStraight; //<2F>Ƿ<EFBFBD>˳<EFBFBD><CBB3>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>
struct tagAnalyseResult
{
BYTE cbFourCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbThreeCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbDoubleCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbSignedCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
BYTE cbFourCardData[13]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE cbThreeCardData[13]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE cbDoubleCardData[13]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
BYTE cbSignedCardData[13]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>
struct tagAnalyseType
{
bool bOnePare; //<2F><>һ<EFBFBD><D2BB>
bool bTwoPare; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bThreeSame; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bStraight; //<2F><>˳<EFBFBD><CBB3>
bool bFlush; //<2F><>ͬ<EFBFBD><CDAC>
bool bGourd; //<2F>к<EFBFBD>«
bool bFourSame; //<2F><><EFBFBD><EFBFBD>֧
bool bStraightFlush; //<2F><>ͬ<EFBFBD><CDAC>˳
bool bFiveSame; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbOnePare[100]; //һ<>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>
BYTE cbTwoPare[100]; //<2F><><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>
BYTE cbThreeSame[100]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbStraight[100]; //˳<>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
BYTE cbFlush[100]; //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbGourd[100]; //<2F><>«<EFBFBD><C2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbFourSame[100]; //<2F><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbStraightFlush[100]; //ͬ<><CDAC>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE cbFiveSame[100]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool bbOnePare[20]; //<2F><><EFBFBD><EFBFBD>һ<EFBFBD>Ա<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbTwoPare[20]; //<2F><><EFBFBD>ж<EFBFBD><D0B6>Ա<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbThreeSame[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbStraight[20]; //<2F><><EFBFBD><EFBFBD>˳<EFBFBD>ӱ<EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbFlush[20]; //<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbGourd[20]; //<2F><><EFBFBD>к<EFBFBD>«<EFBFBD><C2AB>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbFourSame[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbStraightFlush[20]; //<2F><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>˳<EFBFBD><CBB3>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
bool bbFiveSame[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
BYTE btOnePare; //һ<>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE btThreeSame; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
BYTE btTwoPare; //<2F><><EFBFBD>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>
BYTE btStraight; //˳<>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
BYTE btFlush; //ͬ<><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE btGourd; //<2F><>«<EFBFBD><C2AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE btFourSame; //<2F><>֧<EFBFBD><D6A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE btStraightFlush; //ͬ<><CDAC>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BYTE btFiveSame; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
};
//////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enum enSortCardType
{
enDescend , //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enAscend , //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
enColor //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
};
//<2F><>Ϸ<EFBFBD>߼<EFBFBD><DFBC><EFBFBD>
class CGameLogic
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
protected:
static const BYTE m_bCardListData[CARD_COUNT]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
bool m_bClassicRule; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CGameLogic();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual ~CGameLogic();
BYTE btCardSpecialData[13];
//<2F><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>
public:
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
BYTE GetCardType(BYTE bCardData[], BYTE bCardCount,BYTE btSpecialCard[]);
//<2F><>ȡ<EFBFBD><C8A1>ֵ
BYTE GetCardValue(BYTE bCardData) { return bCardData&CARD_MASK_VALUE; } //ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ֵ
//<2F><>ȡ<EFBFBD><C8A1>ɫ
BYTE GetCardColor(BYTE bCardData) { return (bCardData&CARD_MASK_COLOR)>>4; } //ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD>ƵĻ<C6B5>ɫ
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void setClassicRule(bool bFlag) { m_bClassicRule = bFlag; }
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void SortCardList(BYTE bCardData[], BYTE bCardCount,enSortCardType SortCardType=enDescend);
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void RandCardList(BYTE bCardBuffer[], BYTE bBufferCount);
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>
bool RemoveCard(const BYTE bRemoveCard[], BYTE bRemoveCount, BYTE bCardData[], BYTE bCardCount);
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
bool AppendCard(const BYTE bAppendCard[],BYTE bAppendCount,BYTE bCardData[],BYTE &bCardCount);
//<2F>õ<EFBFBD><C3B5>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>
BYTE GetCardCount(BYTE bCardData[]);
//<2F>߼<EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F>߼<EFBFBD><DFBC><EFBFBD>ֵ
BYTE GetCardLogicValue(BYTE bCardData);
//<2F>Ա<EFBFBD><D4B1>˿<EFBFBD>
BYTE CompareCard(BYTE bInFirstList[], BYTE bInNextList[], BYTE bFirstCount, BYTE bNextCount , bool bComperWithOther);
//<2F><><EFBFBD><EFBFBD>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tagAnalyseType GetType(BYTE bCardData[], BYTE bCardCount);
//<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void AnalyseCard(const BYTE bCardDataList[] , const BYTE bCardCount , tagAnalyseData& AnalyseData) ;
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void AnalysebCardData(const BYTE cbCardData[], BYTE cbCardCount, tagAnalyseResult & AnalyseResult) ;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB>
bool IsSameCardData(BYTE btFirstCard[],BYTE btNextCard[],BYTE btFirstCount,BYTE btNextCount);
//<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
void AutoPutCard(BYTE btHandCardData[],BYTE btHandCardCount,BYTE btFrontCard[],BYTE btMidCard[],BYTE btBackCard[]);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
BYTE GetMaxCardData(const BYTE cbCardData[], const BYTE cbCardCount, BYTE cbMaxCardData[], BYTE & bMaxCardCount, BYTE bNeedCCount = 5);
//<2F>Ƿ<EFBFBD>ͬ<EFBFBD><CDAC>
bool IsFlush(const BYTE cbCardData[], const BYTE cbCardCount, BYTE cbMaxCardData[], BYTE & bMaxCardCount, BYTE bNeedCCount = 5);
//<2F>Ƿ<EFBFBD>˳<EFBFBD><CBB3>
bool IsStraight(const BYTE cbCardData[], const BYTE cbCardCount, BYTE cbMaxCardData[], BYTE & bMaxCardCount, BYTE bNeedCCount = 5);
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC>˳
bool IsThreeFlushStraight(const BYTE cbCardData[], const BYTE cbCardCount);
//<2F><><EFBFBD>õ<EFBFBD>һ<EFBFBD><D2BB>
void TheBestCard(tagAnalyseType tagCardType, BYTE btHandCardData[], BYTE btHandCardCount, BYTE btFrontCard[], BYTE btMidCard[], BYTE btBackCard[]);
//<2F><><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><DCB9><EFBFBD>ˮ<EFBFBD><CBAE>
BYTE ThreeDunAllShuiShu(BYTE btFrontCard[], BYTE btMidCard[], BYTE btBackCard[]);
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Ĵ<EFBFBD>
bool IsBiggerThanFront(BYTE btFrontFrontCard[], BYTE btFrontMidCard[], BYTE btFrontBackCard[], BYTE btFrontCard[], BYTE btMidCard[], BYTE btBackCard[]);
};
//////////////////////////////////////////////////////////////////////////
#endif