Files

62 lines
1.6 KiB
C
Raw Permalink Normal View History

2026-03-03 13:56:44 +08:00
#ifndef _NiuNiu_GameLogic_h__
#define _NiuNiu_GameLogic_h__
#pragma once
#include "NN_CMD.h"
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
struct tagOpenCardRlt
{
uint8 cbMaxCard; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 cbCardType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 cbSortCard[NN_MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
};
//<2F><>Ϸ<EFBFBD>߼<EFBFBD><DFBC><EFBFBD>;
class CNNGameLogic
{
public:
//<2F><><EFBFBD><EFBFBD><ECBAAF>;
CNNGameLogic() { }
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
virtual ~CNNGameLogic() { }
public:
//<2F><>Ч<EFBFBD>ж<EFBFBD>;
static bool IsValidCard(const uint8 cbCard);
//<2F><>ȡ<EFBFBD><C8A1>ֵ;
static uint8 GetCardValue(const uint8 cbCard) { return cbCard&NN_MASK_VALUE; }
//<2F><>ȡ<EFBFBD><C8A1>ɫ;
static uint8 GetCardColor(const uint8 cbCard) { return cbCard&NN_MASK_COLOR; }
//<2F><>ȡ<EFBFBD><C8A1>ɫ;
static uint8 GetCardColorEx(const uint8 cbCard) { return (cbCard&NN_MASK_COLOR) >> 4; }
public:
//<2F>߼<EFBFBD><DFBC><EFBFBD>ֵ;
uint8 GetLogicValue(uint8 cbCard);
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>;
void SortCardList(uint8 cbCardData[], uint8 cbCardCount);
//ɾ<><C9BE><EFBFBD>˿<EFBFBD>;
bool RemoveCard(uint8 cbCardData[], uint8 cbCardCount, uint8 cbRemoveCard[], uint8 cbRemoveCount);
public:
//<2F><>ȡӮ<C8A1>ķ<EFBFBD><C4B7><EFBFBD>;
uint8 GetWinNiuFan(const uint8 cbCardType);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 GetMaxCard(const uint8 cbCardData[], const uint8 cbCardCount);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>;
uint8 GetCardType(const uint8 cbCardData[], const uint8 cbCardCount, uint8 cbSortCard[]);
//<2F>Ա<EFBFBD><D4B1>˿<EFBFBD>;
bool CompareCard(const tagOpenCardRlt stFirstData, const tagOpenCardRlt stNextData);
private:
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>廨ţ;
bool IsWuHuaNiu(const uint8 cbCardData[], const uint8 cbCardCount);
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Сţ;
bool IsWuXiaoNiu(const uint8 cbCardData[], const uint8 cbCardCount);
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ը<EFBFBD><D5A8>;
bool IsZhaDan(const BYTE cbCardData[], const BYTE cbCardCount);
};
#endif // GameLogic_h__