日期:2014-05-16  浏览次数:20694 次

关于棋牌游戏添加机器人~
~网狐平台的机器人功能平台都给实现了,而且接口都给定义好了只需要实现这个接口就可以,呵呵

class CAndroidUserItemSink : public IAndroidUserItemSink
{


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

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

 //基础接口
public:
 //释放对象
 virtual void __cdecl Release() { }//if (IsValid()){delete this;}return ;
 //是否有效
 virtual bool __cdecl IsValid() { return AfxIsValidAddress(this,sizeof(CAndroidUserItemSink))?true:false; }
 //接口查询
 virtual void * __cdecl QueryInterface(const IID & Guid, DWORD dwQueryVer);

 //控制接口
public:
 //初始接口
 virtual bool __cdecl InitUserItemSink(IUnknownEx * pIUnknownEx);
 //重置接口
 virtual bool __cdecl RepositUserItemSink();

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

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

 

实现这个接口其实很简单,机器人就是一个游戏玩家CGameClientDlg中已经实现了所有的功能,我们只需要把这些功能再在机器人类中再实现一遍就可以了,如果说游戏各个模块之间的通信消息是生命过程的血液的话,那么游戏的操作界面就是生命体的躯体,

普通的游戏玩家需要界面,以实现漂亮人性化的操作效果,而机器人是没有血肉之躯,但是不乏流畅的血液,热血澎湃着,机器人就有了灵魂,因为我们的工作就是要保证机器人有灵魂!一个简单的办法就是拷贝CGameClientDlg中的所有功能,移除所有的界面操作的代码就可以了!简单吧,是不是没有我们想象中的那么麻烦,呵呵!
------解决方案--------------------
你给出的那些“功能名词”都是最空洞的几个功能名词,根本没有深入到具体地、有技术含量的业务逻辑。