165 lines
4.2 KiB
C
165 lines
4.2 KiB
C
|
|
#ifndef GAME_LOGIC_HEAD_FILE
|
|||
|
|
#define GAME_LOGIC_HEAD_FILE
|
|||
|
|
|
|||
|
|
#pragma once
|
|||
|
|
|
|||
|
|
#include "cocos2d.h"
|
|||
|
|
#include "ui/CocosGUI.h"
|
|||
|
|
#include "Define.h"
|
|||
|
|
|
|||
|
|
#include "WN_CMD_Sparrow.h"
|
|||
|
|
|
|||
|
|
USING_NS_CC;
|
|||
|
|
|
|||
|
|
namespace WNMJ_SPACE{
|
|||
|
|
|
|||
|
|
//<2F><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
enum WNMJ_MASK
|
|||
|
|
{
|
|||
|
|
MASK_WN_COLOR = 0xF0, //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
|
|||
|
|
MASK_WN_VALUE = 0x0F, //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
enum WN_WIK_TYPE
|
|||
|
|
{
|
|||
|
|
WIK_WN_NULL = 0x0000, //û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_LEFT = (1 << 0), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_CENTER = (1 << 1), //<2F>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_RIGHT = (1 << 2), //<2F>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_PENG = (1 << 3), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_GANG = (1 << 4), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_CHI_HU = (1 << 5), //<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_DNBL = (1 << 6), //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
WIK_WN_DNBC = (1 << 7), //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
WIK_WN_DNBR = (1 << 8), //<2F><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
WIK_WN_DXBL = (1 << 9), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_DXBC = (1 << 10), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_DXBR = (1 << 11), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
WIK_WN_CHI = (WIK_WN_RIGHT | WIK_WN_CENTER | WIK_WN_LEFT | WIK_WN_DNBL | WIK_WN_DNBC | WIK_WN_DNBR | WIK_WN_DXBL | WIK_WN_DXBC | WIK_WN_DXBR), //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>
|
|||
|
|
enum WNMJ_HU_TYPE
|
|||
|
|
{
|
|||
|
|
//<2F>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CHK_NULL = 0x0000, //<2F>Ǻ<EFBFBD><C7BA><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CHK_JI_HU = 0x0001, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CHK_QI_DUI = 0x0002, //<2F>߶<EFBFBD>
|
|||
|
|
CHK_THIRTEEN = 0x0004, //13<31><33>
|
|||
|
|
CHK_SERVEN = 0x0008, //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
CHK_PENG_PENG = 0x0010, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
CHK_HUNYISE = 0x0020, //<2F><>һɫ;
|
|||
|
|
CHK_QINYISE = 0x0040, //<2F><>һɫ;
|
|||
|
|
CHK_ZIYISE = 0x0080, //<2F><>һɫ;
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
CHR_ZI_MO = 0x0001, //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
CHR_QIANG_GANG = 0x0002, //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
CHR_GANG_FLOWER = 0x0004, //<2F><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD>
|
|||
|
|
CHR_HAS_KING = 0x0008, //<2F>б<EFBFBD>Ȩλ
|
|||
|
|
CHR_GERMAN = 0x0010, //<2F>¹<EFBFBD>Ȩλ
|
|||
|
|
CHR_TIAN = 0x0020, //<2F><><EFBFBD><EFBFBD>Ȩλ
|
|||
|
|
CHR_DI = 0x0040, //<2F>غ<EFBFBD>Ȩλ
|
|||
|
|
CHR_LIAN_GANG_FLOWER = 0x0080, //<2F><><EFBFBD>ܺ<EFBFBD>Ȩλ;
|
|||
|
|
CHR_QIANG_LIAN_GANG = 0x0100, //<2F><><EFBFBD><EFBFBD><EFBFBD>ܺ<EFBFBD>Ȩλ;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
struct tagKindItem
|
|||
|
|
{
|
|||
|
|
uint8 cbWeaveKingReplace; //<2F><><EFBFBD><EFBFBD><EFBFBD>滻
|
|||
|
|
WORD wWeaveKind; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8 cbCenterCard; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
uint8 cbCardIndex[3]; //<2F>˿<EFBFBD><CBBF><EFBFBD><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
|
|||
|
|
{
|
|||
|
|
uint8 cbEyeKingReplace; //<2F><><EFBFBD><EFBFBD><EFBFBD>滻
|
|||
|
|
uint8 cbWeaveKingReplace; //<2F><><EFBFBD><EFBFBD><EFBFBD>滻
|
|||
|
|
uint8 cbCardEye; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
WORD wWeaveKind[MAX_WEAVE]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8 cbCenterCard[MAX_WEAVE]; //<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
enum EN_KING_TYPE
|
|||
|
|
{
|
|||
|
|
KT_MAIN = 0, // <20><>
|
|||
|
|
KT_VICE, // <20><>
|
|||
|
|
KT_KING, // <20><>
|
|||
|
|
KT_NULL, // <20><>ͨ<EFBFBD><CDA8>
|
|||
|
|
};
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>˵<EFBFBD><CBB5>
|
|||
|
|
typedef CArrayTemplate<tagAnalyseItem, tagAnalyseItem &> CAnalyseItemArray;
|
|||
|
|
|
|||
|
|
//<2F><>Ϸ<EFBFBD><EFBFBD><DFBC><EFBFBD>
|
|||
|
|
class WN_CGameLogic
|
|||
|
|
{
|
|||
|
|
CREATE_SINGLETON_MUTEX_CLEAR(WN_CGameLogic, s_configInstance, nullptr);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
static WN_CGameLogic *s_configInstance;
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
void init();
|
|||
|
|
void clear();
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
protected:
|
|||
|
|
static const uint8 m_cbCardDataArray[MAX_REPERTORY]; //<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8 m_cbKingCardIndex[2]; //<2F><><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
|
|||
|
|
//<2F><>Ч<EFBFBD>ж<EFBFBD>
|
|||
|
|
static bool IsValidCard(uint8 cbCardData);
|
|||
|
|
//<2F>˿<EFBFBD><CBBF><EFBFBD>Ŀ
|
|||
|
|
uint8 GetCardCount(uint8 cbCardIndex[MAX_INDEX]);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
|
|||
|
|
uint8 GetWeaveCard(WORD cbWeaveKind, uint8 cbCenterCard, uint8 cbCardBuffer[4]);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ֵ
|
|||
|
|
static uint8 GetCardValue(uint8 cbCardData) { return (cbCardData&MASK_WN_VALUE); }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1>ɫ
|
|||
|
|
static uint8 GetCardColor(uint8 cbCardData) { return ((cbCardData&MASK_WN_COLOR) >> 4); }
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
std::string GetHuKind(WORD wChiHuKind);
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>άȨ
|
|||
|
|
std::string GetHuRight(WORD wChiHuRight);
|
|||
|
|
|
|||
|
|
//ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
uint8 SwitchToCardData(uint8 cbCardIndex);
|
|||
|
|
//<2F>˿<EFBFBD>ת<EFBFBD><D7AA>
|
|||
|
|
uint8 SwitchToCardIndex(uint8 cbCardData);
|
|||
|
|
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
|
public:
|
|||
|
|
//<2F><><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD>
|
|||
|
|
WORD AnalyseGangCard(uint8 cbCardIndex[MAX_INDEX], tagWeaveItem WeaveItem[], uint8 cbWeaveCount, tagGangCardResult & GangCardResult);
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
|
|
|||
|
|
#endif
|