217 lines
10 KiB
C
217 lines
10 KiB
C
|
|
#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
|