Files
wnmj-normal/Servers/游戏组件/房卡牛牛/服务器控制/GameLogic.h

90 lines
2.3 KiB
C
Raw Normal View History

2026-03-03 13:56:44 +08:00
#ifndef GAME_LOGIC_HEAD_FILE
#define GAME_LOGIC_HEAD_FILE
#pragma once
#include "Stdafx.h"
//////////////////////////////////////////////////////////////////////////
//<2F><EFBFBD><EAB6A8>
//<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
#define LOGIC_MASK_COLOR 0xF0 //<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
#define LOGIC_MASK_VALUE 0x0F //<2F><>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
//<2F>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>
#define OX_VALUE0 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define OX_THREE_SAME 102 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define OX_FOUR_SAME 103 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define OX_FOURKING 104 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define OX_FIVEKING 105 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//////////////////////////////////////////////////////////////////////////
//<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 cbFourLogicVolue[1]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbThreeLogicVolue[1]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbDoubleLogicVolue[2]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbSignedLogicVolue[5]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbFourCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbThreeCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbDoubleCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
BYTE cbSignedCardData[MAX_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
};
//////////////////////////////////////////////////////////////////////////
//<2F><>Ϸ<EFBFBD>߼<EFBFBD><DFBC><EFBFBD>
class CGameLogic
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private:
static BYTE m_cbCardListData[52]; //<2F>˿˶<CBBF><CBB6><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><CDBA><EFBFBD>
public:
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
BYTE GetCardType(BYTE cbCardData[], BYTE cbCardCount);
//<2F><>ȡ<EFBFBD><C8A1>ֵ
BYTE GetCardValue(BYTE cbCardData) { return cbCardData&LOGIC_MASK_VALUE; }
//<2F><>ȡ<EFBFBD><C8A1>ɫ
BYTE GetCardColor(BYTE cbCardData) { return cbCardData&LOGIC_MASK_COLOR; }
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
BYTE GetTimes(BYTE cbCardData[], BYTE cbCardCount);
//<2F><>ȡţţ
bool GetOxCard(BYTE cbCardData[], BYTE cbCardCount);
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
bool IsIntValue(BYTE cbCardData[], BYTE cbCardCount);
//<2F><><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void SortCardList(BYTE cbCardData[], BYTE cbCardCount);
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>
void RandCardList(BYTE cbCardBuffer[], BYTE cbBufferCount);
//<2F><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>
public:
//<2F>߼<EFBFBD><DFBC><EFBFBD>ֵ
BYTE GetCardLogicValue(BYTE cbCardData);
//<2F>Ա<EFBFBD><D4B1>˿<EFBFBD>
bool CompareCard(BYTE cbFirstData[], BYTE cbNextData[], BYTE cbCardCount,BOOL FirstOX,BOOL NextOX);
};
//////////////////////////////////////////////////////////////////////////
#endif