四副升级(机器人)【源码】

[复制链接]

该用户从未签到

2380

主题

2433

帖子

9139

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9139
QQ
跳转到指定楼层
楼主
发表于 2017-6-13 12:01:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

想要查看内容赶紧注册登陆吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
#ifndef ANDROID_USER_ITEM_SINK_HEAD_FILE
#define ANDROID_USER_ITEM_SINK_HEAD_FILE

#pragma once

#include "Stdafx.h"
#include "GameLogic.h"

//////////////////////////////////////////////////////////////////////////

//请求离开用户
typedef CWHArray    RequestLeaveUserAry;

//机器人类
class CAndroidUserItemSink : public IAndroidUserItemSink
{
    //逻辑变量
protected:
    BYTE                            m_cbPackCount;                        //牌副数目
    BYTE                            m_cbMainColor;                        //主牌花色
    BYTE                            m_cbMainValue;                        //主牌数值

    //叫牌信息
protected:
    BYTE                            m_cbCallCard;                        //叫牌扑克
    BYTE                            m_cbCallCount;                        //叫牌数目
    WORD                            m_wCallCardUser;                    //叫牌用户

    //状态变量
protected:
    WORD                            m_wBankerUser;                        //庄家用户
    WORD                            m_wCurrentUser;                        //当前用户

    //得分信息
protected:
    BYTE                            m_cbScoreCardCount;                    //分牌数目
    BYTE                            m_cbScoreCardData[12*PACK_COUNT];    //得分扑克

    //出牌变量
protected:
    WORD                            m_wFirstOutUser;                    //出牌用户
    BYTE                            m_cbOutCardCount[4];                //出牌数目
    BYTE                            m_cbOutCardData[4][MAX_COUNT];        //出牌列表

    //底牌扑克
protected:
    BYTE                            m_cbConcealCount;                    //暗藏数目
    BYTE                            m_cbConcealCard[8];                    //暗藏扑克

    //请求离开用户
    RequestLeaveUserAry                m_RequestUserAry;                    

    //用户扑克
protected:
    BYTE                            m_cbHandCardCount;                    //扑克数目
    BYTE                            m_cbHandCardData[MAX_COUNT];        //手上扑克   

    //控件变量
protected:
    CGameLogic                        m_GameLogic;                        //游戏逻辑
    IAndroidUserItem *                m_pIAndroidUserItem;                //用户接口

    //函数定义
public:
    //构造函数
    CAndroidUserItemSink();
    //析构函数
    virtual ~CAndroidUserItemSink();

    //基础接口
public:
    //释放对象
    virtual VOID  Release() {delete this; }
    //接口查询
    virtual void *  QueryInterface(const IID & Guid, DWORD dwQueryVer);

    //控制接口
public:
    //初始接口
    virtual bool  Initialization(IUnknownEx * pIUnknownEx);
    //重置接口
    virtual bool  RepositionSink();

    //游戏事件
public:
    //时间消息
    virtual bool  OnEventTimer(UINT nTimerID);
    //游戏消息
    virtual bool  OnEventGameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize);
    //游戏消息
    virtual bool  OnEventFrameMessage(WORD wSubCmdID, VOID * pData, WORD wDataSize);
    //场景消息
    virtual bool  OnEventSceneMessage(BYTE cbGameStatus, bool bLookonOther, VOID * pData, WORD wDataSize);

    //用户事件
public:
    //用户进入
    virtual void  OnEventUserEnter(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户离开
    virtual void  OnEventUserLeave(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户积分
    virtual void  OnEventUserScore(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户状态
    virtual void  OnEventUserStatus(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);
    //用户段位
    virtual void  OnEventUserSegment(IAndroidUserItem * pIAndroidUserItem, bool bLookonUser);

    //消息处理
protected:
    //游戏开始
    bool OnSubGameStart(const void * pBuffer, WORD wDataSize);
    //发送扑克
    bool OnSubSendCard(const void * pBuffer, WORD wDataSize);
    //用户叫牌
    bool OnSubCallCard(const void * pBuffer, WORD wDataSize);
    //发送底牌
    bool OnSubSendConceal(const void * pBuffer, WORD wDataSize);
    //游戏开始
    bool OnSubGamePlay(const void * pBuffer, WORD wDataSize);
    //用户出牌
    bool OnSubOutCard(const void * pBuffer, WORD wDataSize);
    //甩牌结果
    bool OnSubThrowResult(const void * pBuffer, WORD wDataSize);
    //一轮结算
    bool OnSubTurnBalance(const void * pBuffer, WORD wDataSize);
    //游戏结束
    bool OnSubGameEnd(const void * pBuffer, WORD wDataSize);
    //请求离开
    bool OnSubRequestLeave(const void * pBuffer, WORD wDataSize);
    //批量出牌
    bool OnSubBatchCard(const void * pBuffer, WORD wDataSize);

    //辅助函数
protected:
    //叫牌
    bool CallCard();
    //下底牌
    bool SendConceal();
    //出牌
    bool OutCard();
};

//////////////////////////////////////////////////////////////////////////

#endif

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

快速回复高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表