65 lines
1.6 KiB
C
65 lines
1.6 KiB
C
|
|
#ifndef GameLogic_h__
|
|||
|
|
#define GameLogic_h__
|
|||
|
|
#pragma once
|
|||
|
|
#include "Stdafx.h"
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>
|
|||
|
|
struct tagOpenCardRlt
|
|||
|
|
{
|
|||
|
|
BYTE cbMaxCard; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cbCardType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE cbSortCard[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|||
|
|
class CGameLogic
|
|||
|
|
{
|
|||
|
|
private:
|
|||
|
|
BYTE m_cbRepertoryCard[FULL_COUNT];
|
|||
|
|
static BYTE m_cbCardList[FULL_COUNT];
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>캯<EFBFBD><ECBAAF>
|
|||
|
|
CGameLogic() { }
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
virtual ~CGameLogic() { }
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><>Ч<EFBFBD>ж<EFBFBD>
|
|||
|
|
static bool IsValidCard(const BYTE cbCard);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
static BYTE GetCardValue(const BYTE cbCard) { return cbCard&MASK_VALUE; }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ɫ
|
|||
|
|
static BYTE GetCardColor(const BYTE cbCard) { return (cbCard&MASK_COLOR)>>4; }
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><EFBFBD><DFBC><EFBFBD>ֵ
|
|||
|
|
BYTE GetLogicValue(BYTE cbCard);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
void SortCardList(BYTE cbCardData[], BYTE cbCardCount);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
void RandCardList(BYTE cbCardData[], BYTE cbCardCount, bool bNoHuaCard);
|
|||
|
|
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>
|
|||
|
|
bool RemoveCard(BYTE cbCardData[], BYTE cbCardCount, BYTE cbRemoveCard[], BYTE cbRemoveCount);
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
//<2F><>ȡӮ<C8A1>ķ<EFBFBD><C4B7><EFBFBD>
|
|||
|
|
BYTE GetWinNiuFan(const BYTE cbCardType);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
BYTE GetMaxCard(const BYTE cbCardData[], const BYTE cbCardCount);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
BYTE GetCardType(const BYTE cbCardData[], const BYTE cbCardCount, BYTE cbSortCard[], bool IsHasWHN, bool IsHasBomb, bool IsHasWXN);
|
|||
|
|
//<2F>Ա<EFBFBD><D4B1>˿<EFBFBD>
|
|||
|
|
bool CompareCard(const tagOpenCardRlt stFirstData, const tagOpenCardRlt stNextData);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>廨ţ
|
|||
|
|
bool IsWuHuaNiu(const BYTE cbCardData[], const BYTE cbCardCount);
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Сţ
|
|||
|
|
bool IsWuXiaoNiu(const BYTE cbCardData[], const BYTE cbCardCount);
|
|||
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ը<EFBFBD><D5A8>;
|
|||
|
|
bool IsZhaDan(const BYTE cbCardData[], const BYTE cbCardCount);
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // GameLogic_h__
|