90 lines
2.3 KiB
C++
90 lines
2.3 KiB
C++
#ifndef GAME_LOGIC_HEAD_FILE
|
|
#define GAME_LOGIC_HEAD_FILE
|
|
|
|
#pragma once
|
|
|
|
#include "Stdafx.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//宏定义
|
|
|
|
//数值掩码
|
|
#define LOGIC_MASK_COLOR 0xF0 //花色掩码
|
|
#define LOGIC_MASK_VALUE 0x0F //数值掩码
|
|
|
|
//扑克类型
|
|
#define OX_VALUE0 0 //混合牌型
|
|
#define OX_THREE_SAME 102 //三条牌型
|
|
#define OX_FOUR_SAME 103 //四条牌型
|
|
#define OX_FOURKING 104 //天王牌型
|
|
#define OX_FIVEKING 105 //天王牌型
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
//分析结构
|
|
struct tagAnalyseResult
|
|
{
|
|
BYTE cbFourCount; //四张数目
|
|
BYTE cbThreeCount; //三张数目
|
|
BYTE cbDoubleCount; //两张数目
|
|
BYTE cbSignedCount; //单张数目
|
|
BYTE cbFourLogicVolue[1]; //四张列表
|
|
BYTE cbThreeLogicVolue[1]; //三张列表
|
|
BYTE cbDoubleLogicVolue[2]; //两张列表
|
|
BYTE cbSignedLogicVolue[5]; //单张列表
|
|
BYTE cbFourCardData[MAX_COUNT]; //四张列表
|
|
BYTE cbThreeCardData[MAX_COUNT]; //三张列表
|
|
BYTE cbDoubleCardData[MAX_COUNT]; //两张列表
|
|
BYTE cbSignedCardData[MAX_COUNT]; //单张数目
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
//游戏逻辑类
|
|
class CGameLogic
|
|
{
|
|
//变量定义
|
|
private:
|
|
static BYTE m_cbCardListData[52]; //扑克定义
|
|
|
|
//函数定义
|
|
public:
|
|
//构造函数
|
|
CGameLogic();
|
|
//析构函数
|
|
virtual ~CGameLogic();
|
|
|
|
//类型函数
|
|
public:
|
|
//获取类型
|
|
BYTE GetCardType(BYTE cbCardData[], BYTE cbCardCount);
|
|
//获取数值
|
|
BYTE GetCardValue(BYTE cbCardData) { return cbCardData&LOGIC_MASK_VALUE; }
|
|
//获取花色
|
|
BYTE GetCardColor(BYTE cbCardData) { return cbCardData&LOGIC_MASK_COLOR; }
|
|
//获取倍数
|
|
BYTE GetTimes(BYTE cbCardData[], BYTE cbCardCount);
|
|
//获取牛牛
|
|
bool GetOxCard(BYTE cbCardData[], BYTE cbCardCount);
|
|
//获取整数
|
|
bool IsIntValue(BYTE cbCardData[], BYTE cbCardCount);
|
|
|
|
//控制函数
|
|
public:
|
|
//排列扑克
|
|
void SortCardList(BYTE cbCardData[], BYTE cbCardCount);
|
|
//混乱扑克
|
|
void RandCardList(BYTE cbCardBuffer[], BYTE cbBufferCount);
|
|
|
|
//功能函数
|
|
public:
|
|
//逻辑数值
|
|
BYTE GetCardLogicValue(BYTE cbCardData);
|
|
//对比扑克
|
|
bool CompareCard(BYTE cbFirstData[], BYTE cbNextData[], BYTE cbCardCount,BOOL FirstOX,BOOL NextOX);
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif
|