📄 gobangdeal.h
字号:
// GobangDeal.h: interface for the GobangDeal class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GOBANGDEAL_H__3B058BE7_2769_4B64_A578_92320CDE108E__INCLUDED_)
#define AFX_GOBANGDEAL_H__3B058BE7_2769_4B64_A578_92320CDE108E__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define MAXSHOWLINES 2000 //监视窗口最多显示行数
UINT RecvThreadFunc(LPVOID pParam); //接收线程
class GobangDeal
{
public:
GobangDeal(CListBox *pListBox,CString configfile);
virtual ~GobangDeal();
BOOL WriteLog(LPCTSTR fmt , ...);
void AddMsg(LPCTSTR fmt , ...);
UINT Run();
void SetThreadNo(int no);
int GetThreadNo();
void GetDataBasepara(CString &sdatabase,CString &sdbusername,CString &sdbpassword,CString &slogdir);
// 获取房间列表信息
void GetRoomList(TDBPEx *dbp,NODE_STRUCT RecvNode);
//获取用户游戏统计信息
void GetCountInfo(TDBPEx *dbp,NODE_STRUCT recvnode);
//获取大厅信息
void GetHallInfo(TDBPEx *dbp,NODE_STRUCT recvnode);
//退出房间
void ToExitRoom(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户坐下
void UserSit(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户站起
void UserUp(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户准备好
void UserReady(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户开始
void UserStart(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户在下棋
void UserPlay(TDBPEx *dbp,NODE_STRUCT recvnode);
//在线检测
void OlineCheck(TDBPEx *dbp,NODE_STRUCT recvnode);
//用户退出
void UserExit(TDBPEx *dbp,NODE_STRUCT recvnode);
//获取指定用户的详细信息
void GetOtherInfo(TDBPEx *dbp,NODE_STRUCT recvnode);
//判断平局
BOOL has_tie(int points[16][16]);
//判断输赢
BOOL has_five(int points[16][16],int x, int y,int color);
//用于得到棋盘上某一点的颜色
int getcolor(int points[16][16],int x,int i,int move,int y);
//游戏中的功能操作请求(0:放弃)
void GamingGiveUp(TDBPEx *dbp,NODE_STRUCT recvnode);
void GamingRegret(TDBPEx *dbp,NODE_STRUCT recvnode);
void RegretRespond(TDBPEx *dbp,NODE_STRUCT recvnode);
void GamingTie(TDBPEx *dbp,NODE_STRUCT recvnode);
void TieRespond(TDBPEx *dbp,NODE_STRUCT recvnode);
void GamingSurrender(TDBPEx *dbp,NODE_STRUCT recvnode);
//丢包补救措施
void SalveDeal(TDBPEx *dbp,NODE_STRUCT recvnode,CString userid,CString roomnum,CString tableid,short stepnum,CString func);
private:
//广播房间列表改变的信息
void RadioRoomInfo(TDBPEx *dbp,CString roomnum,CString operateid);
//给同房间的用户发信息改变通知
void SendRoomUser(TDBPEx *dbp,NODE_STRUCT recvnode,CString userinfo,CString userid,CString roomid);
void Qipaninit(TDBPEx *dbp,CString seqid); //棋盘初始化
void ReadFromConfig();
BOOL Init();
private:
CString configfile;
CString logfile;
CString logdir;
CString database;
CString dbusername;
CString dbpassword;
CWinThread *pRecvThread[10];
int threadnum; //服务程序起的处理线程数
int threadno; //当前的线程编号
CListBox *m_pMsgList;
};
#endif // !defined(AFX_GOBANGDEAL_H__3B058BE7_2769_4B64_A578_92320CDE108E__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -