250 lines
8.9 KiB
C
250 lines
8.9 KiB
C
|
|
#ifndef GAME_LOGIC_HEAD_FILE
|
|||
|
|
#define GAME_LOGIC_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define MAX_WEAVE 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MAX_INDEX 34 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define MAX_REPERTORY 136 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|||
|
|
#define MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
//#define WIK_NULL 0x0000 //û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_LEFT 0x0001 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_CENTER 0x0002 //<2F>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_RIGHT 0x0004 //<2F>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_PENG 0x0008 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_GANG 0x0010 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_CHI_HU 0x0020 //<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_DNBL 0x0040 //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
//#define WIK_DNBC 0x0080 //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
//#define WIK_DNBR 0x0100 //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
//#define WIK_DXBL 0x0200 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_DXBC 0x0400 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//#define WIK_DXBR 0x0800 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
#define WIK_NULL 0x0000 //û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_LEFT (1<<0) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_CENTER (1<<1) //<2F>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_RIGHT (1<<2) //<2F>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WIK_PENG (1<<3) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_GANG (1<<4) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_CHI_HU (1<<5) //<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WIK_DNBL (1<<6) //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
#define WIK_DNBC (1<<7) //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
#define WIK_DNBR (1<<8) //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
#define WIK_DXBL (1<<9) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_DXBC (1<<10) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define WIK_DXBR (1<<11) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#define WIK_CHI (WIK_LEFT|WIK_CENTER|WIK_RIGHT|WIK_DNBL|WIK_DNBC|WIK_DNBR|WIK_DXBL|WIK_DXBC|WIK_DXBR) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CHK_NULL 0x0000 //<2F>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CHK_JI_HU 0x0001 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#define CHK_QI_DUI 0x0002 //<2F>߶<EFBFBD>
|
|||
|
|
#define CHK_THIRTEEN 0x0004 //13<31><33>
|
|||
|
|
#define CHK_SERVEN 0x0008 //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
#define CHK_PENG_PENG 0x0010 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
#define CHK_HUNYISE 0x0020 //<2F><>һɫ;
|
|||
|
|
#define CHK_QINYISE 0x0040 //<2F><>һɫ;
|
|||
|
|
#define CHK_ZIYISE 0x0080 //<2F><>һɫ;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
#define CHR_ZI_MO 0x0001 //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
#define CHR_QIANG_GANG 0x0002 //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
#define CHR_GANG_FLOWER 0x0004 //<2F><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>
|
|||
|
|
#define CHR_HAS_KING 0x0008 //<2F>б<EFBFBD>Ȩλ
|
|||
|
|
#define CHR_GANG_ZHONGSE 0x0010 //<2F><><EFBFBD><EFBFBD>ɫȨλ;
|
|||
|
|
#define CHR_TIAN 0x0020 //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
#define CHR_DI 0x0040 //<2F>غ<EFBFBD>Ȩλ
|
|||
|
|
#define CHR_LIAN_GANG_FLOWER 0x0080 //<2F><><EFBFBD>ܺ<EFBFBD>Ȩλ;
|
|||
|
|
#define CHR_QIANG_LIAN_GANG 0x0100 //<2F><><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>Ȩλ;
|
|||
|
|
#define CHR_INVALIDHU_ZIYISE 0x0200 //û<><C3BB><EFBFBD><EFBFBD><EFBFBD>ɺ<EFBFBD><C9BA>Ƶ<EFBFBD><C6B5><EFBFBD>һɫ<D2BB><C9AB>Ȩλ;
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
struct tagKindItem
|
|||
|
|
{
|
|||
|
|
WORD wWeaveKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cbCenterCard; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
BYTE cbCardIndex[3]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
//struct tagWeaveItem
|
|||
|
|
//{
|
|||
|
|
// WORD wWeaveKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
// BYTE cbCenterCard; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
// BYTE cbPublicCard; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
|
// WORD wProvideUser; //<2F><>Ӧ<EFBFBD>û<EFBFBD>
|
|||
|
|
//};
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
|||
|
|
struct tagChiHuResult
|
|||
|
|
{
|
|||
|
|
WORD wChiHuKind; //<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WORD wChiHuRight; //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
struct tagAnalyseItem
|
|||
|
|
{
|
|||
|
|
BYTE cbEyeKingReplace; //<2F><><EFBFBD><EFBFBD><EFBFBD>滻
|
|||
|
|
BYTE cbWeaveKingReplace; //<2F><><EFBFBD><EFBFBD><EFBFBD>滻
|
|||
|
|
BYTE cbCardEye; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
WORD wWeaveKind[MAX_WEAVE]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cbCenterCard[MAX_WEAVE]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
|
typedef CWHArray<tagAnalyseItem, tagAnalyseItem &> CAnalyseItemArray;
|
|||
|
|
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|||
|
|
class CGameLogic
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
static const BYTE m_cbCardDataArray[MAX_REPERTORY]; //<2F>˿<EFBFBD><CBBF><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();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
void RandCardData(BYTE cbCardData[], BYTE cbMaxCount);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>
|
|||
|
|
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>
|
|||
|
|
bool RemoveCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbRemoveCard[], BYTE cbRemoveCount);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>
|
|||
|
|
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, BYTE cbRemoveCard[], BYTE cbRemoveCount);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ȥ<EFBFBD><C8A5><EFBFBD>ظ<EFBFBD><D8B8>˿<EFBFBD>;
|
|||
|
|
void GetCardRemoveRepeat(BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT], BYTE &nCount);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ч<EFBFBD>ж<EFBFBD>
|
|||
|
|
bool IsValidCard(BYTE cbCardData);
|
|||
|
|
//<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
|
|||
|
|
BYTE GetCardCount(BYTE cbCardIndex[MAX_INDEX]);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
BYTE GetWeaveCard(WORD wWeaveKind, BYTE cbCenterCard, BYTE cbCardBuffer[4]);
|
|||
|
|
|
|||
|
|
//<2F>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD>
|
|||
|
|
BYTE GetUserActionRank(WORD wUserAction);
|
|||
|
|
//<2F><><EFBFBD>Ƶȼ<C6B5>
|
|||
|
|
BYTE GetChiHuActionRank(tagChiHuResult & ChiHuResult);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
WORD EstimateEatCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
WORD EstimatePengCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
WORD EstimateGangCard(BYTE cbCardIndex[MAX_INDEX], BYTE cbCurrentCard);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
|
|||
|
|
WORD AnalyseGangCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, tagGangCardResult & GangCardResult);
|
|||
|
|
//<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WORD AnalyseChiHuCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, WORD wChiHuRight, tagChiHuResult & ChiHuResult, BYTE cbHuRule, bool bZimo = false, bool bRealHu = true);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
|
|||
|
|
BYTE AnalyseTingCard(const BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, WORD wChiHuRight, tagChiHuResult & ChiHuResult, BYTE cbHuRule, bool bZimo = false, bool bTurnAll=false, bool bRealTing=false);
|
|||
|
|
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool IsTingCard(const BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, WORD wChiHuRight, tagChiHuResult & ChiHuResult, BYTE cbHuRule, bool bZimo = true, bool bTurnAll = false);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
//<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>(Ӳ<><D3B2>);
|
|||
|
|
WORD AnalyseYingHuCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, WORD wChiHuRight, tagChiHuResult & ChiHuResult, bool bZimo = false, bool bRealHu = true);
|
|||
|
|
//<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>(һ<>ߵ<EFBFBD><DFB5><EFBFBD>);
|
|||
|
|
WORD AnalyseYiBianDaoHuCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbWeaveCount, BYTE cbCurrentCard, WORD wChiHuRight, tagChiHuResult & ChiHuResult, bool bZimo = false, bool bRealHu = true);
|
|||
|
|
|
|||
|
|
|
|||
|
|
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
BYTE SwitchToCardData(BYTE cbCardIndex);
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
BYTE SwitchToCardIndex(BYTE cbCardData);
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
BYTE SwitchToCardData(BYTE cbCardIndex[MAX_INDEX], BYTE cbCardData[MAX_COUNT],BYTE bMaxCount);
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
BYTE SwitchToCardIndex(BYTE cbCardData[], BYTE cbCardCount, BYTE cbCardIndex[MAX_INDEX]);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
LONG CalScore(tagChiHuResult & ChihuResult, LONG &lScore, LONG &lTimes, LONG &lExtScore, BYTE cbFan, bool bZhiAnGangFanbei = false);
|
|||
|
|
//<2F><><EFBFBD>㸱<EFBFBD><E3B8B1>
|
|||
|
|
BYTE GetKingFromBrother(BYTE cbBrotherData);
|
|||
|
|
|
|||
|
|
//<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
private:
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
bool AnalyseCard(BYTE cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], BYTE cbItemCount, CAnalyseItemArray & AnalyseItemArray,BYTE cbCurrentCard,bool bZimo);
|
|||
|
|
//7<><37>
|
|||
|
|
bool ServenStar(BYTE cbCardIndex[MAX_INDEX],BYTE &cbGerman,BYTE cbCurrentCard,bool bZimo, bool bChongfeng=false);
|
|||
|
|
//<2F><>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
|
|||
|
|
bool IsQiXiaoDui(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbWeaveCount,const BYTE cbCurrentCard,BYTE &cbGerman,bool bZimo);
|
|||
|
|
//3˳ 3<><33>
|
|||
|
|
bool IsNeat3(const BYTE cbCardIndex[MAX_INDEX],BYTE &cbGerman);
|
|||
|
|
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
bool IsNeat2(BYTE cbCardIndex[MAX_INDEX],tagWeaveItem WeaveItem[], BYTE cbWeaveCount);
|
|||
|
|
//ȫ<><C8AB><EFBFBD><EFBFBD>
|
|||
|
|
bool IsNeatAlone(BYTE cbCardIndex[MAX_INDEX],BYTE &cbGerman,BYTE cbCurrentCard,bool bZimo);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
bool IsZiPai(BYTE cbCardData);
|
|||
|
|
//<2F><>һɫ<D2BB><C9AB>(<28><>,<2C><>,Ͳ<>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>);
|
|||
|
|
bool IsQingYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount, const BYTE cbCurrentCard);
|
|||
|
|
//<2F><>һɫ<D2BB><C9AB>(<28><>,<2C><>,Ͳ<>е<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
|||
|
|
bool IsHunYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount, const BYTE cbCurrentCard);
|
|||
|
|
//<2F><>һɫ<D2BB><C9AB>(ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
|
|||
|
|
bool IsZiYiSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount, const BYTE cbCurrentCard);
|
|||
|
|
//û<><C3BB>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>Ȩλ;
|
|||
|
|
bool IsCheckZhongSe(const BYTE cbCardIndex[MAX_INDEX], const tagWeaveItem WeaveItem[], const BYTE cbItemCount, const BYTE cbCurrentCard, tagChiHuResult & ChiHuResult, BYTE cbRule, bool bTing = false);
|
|||
|
|
|
|||
|
|
//<2F>ȽϺ<C8BD><CFBA>ƽ<EFBFBD><C6BD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD>;
|
|||
|
|
void CompareChiHuResult(tagChiHuResult& destChiHuResult, tagChiHuResult& tempChiHuResult);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|