chinesechessdlg.h
来自「用c++ 开发的中国象棋」· C头文件 代码 · 共 182 行
H
182 行
// ChineseChessDlg.h : header file
//
#if !defined(AFX_CHINESECHESSDLG_H__A129C33C_9460_4E90_A2B1_8ED08DC4E1E0__INCLUDED_)
#define AFX_CHINESECHESSDLG_H__A129C33C_9460_4E90_A2B1_8ED08DC4E1E0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "NetSetDlg.h"
#include "InitSet.h"
#include "MoveGenerator.h"
#include "Evaluation.h"
#include <stack>
#include "ServerSock.h"
#include "ClientSock.h"
#include "Search.h"
#include "AlphaBetaSearch1.h"
#include "MyCoolMenu.h"
#include "CpuUsgesCtl.h"
#include "MemUsgesCtl.h"
#include "PlayerList.h"
using namespace std;
/////////////////////////////////////////////////////////////////////////////
// CChineseChessDlg dialog
class CChineseChessDlg : public CDialog//,public CSocket
{
protected:
void DrawStar(CDC* dc,int x,int y);
public:
//判断本棋是否下完,红方赢返回-1,黑方赢返回1
int IsGameOver(BYTE position[][9]);
//人机对弈电脑思考过程
void Think();
//处理ACCEPT事件
void ProcessPendingAccept();
//得到本机IP地址
void GetLocalIP();
//新来一局
void OnNewGame();
//画棋盘
void DrawChessBoard(CDC* dc);
// Construction
public:
CChineseChessDlg(CWnd* pParent = NULL); // standard constructor
virtual ~CChineseChessDlg();
// Dialog Data
//{{AFX_DATA(CChineseChessDlg)
enum { IDD = IDD_CHINESECHESS_DIALOG };
CMyButton m_BtnNewGame;
CMyButton m_BtnSend;
CMyButton m_BtnUnDo;
CMyButton m_BtnReDo;
CMyButton m_BtnGiveUp;
CProgressCtrl m_Think;
CStatic m_RedName;
CStatic m_BlackName;
CEdit m_EditSendMsg;
CListBox m_MsgList;
CEdit m_EditOutputInfo;
CEdit m_EditMsg;
CListBox m_ListMsg;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChineseChessDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
public:
CInitSet setdlg; //初始化设置
bool IsNetBattle;//网络队战
BOOL m_IsComputer;
COLORREF m_ChessBoardColor;
CImageList m_ImageList;//用于绘制棋子的对象
BYTE m_byChessBoard[10][9]; //棋盘数组,用于显示棋盘
BYTE m_byBackupChessBoard[10][9];//备份棋盘数组,用于出错恢复
BYTE m_byShowChessBoard[10][9]; //用于显示的棋盘
MovingChess m_MoveChess; //用于保存当前被拖拽的棋子的结构
POINT m_ptMoveChess; //用于保存当前被拖拽的棋子的位置
int m_nUserChessColor; //保存用户棋子的颜色(或网络队战史黑方的棋子)
int m_iWhoChess; //现在该谁走棋了
CSearch* m_pSE; //搜索引擎指针
CEvaluation* m_pEval; //用于估值
int m_iBout; //已下的回合数
BOOL m_bIsGameOver; //是否结束了
BOOL m_bIsBegin; //是否开始走棋了
CServerSock m_ListenSocket; //用于监听
CClientSock m_ClientSocket; //用于连接
CClientSock m_ConnectSocket; //用于进入游戏大厅
BOOL m_bIsClient; //是客户端还是服务器
BOOL m_bIsInit; //初始化成功否
BOOL m_bIsInitToServer;
int m_port; //端口号
CString m_ip; //IP
BYTE m_bIP[4];
CString m_sLocalName; //本机名字
CString m_ServIP;
CString m_GameSerIP;
UINT m_GameSerPort;
ChessMove m_cmBestMove; //最佳走法
UnDoMove m_umUndoMove; //悔棋走法
HBITMAP m_hBitmap; //绘制背景图片
HANDLE m_hHandle; //电脑思考句柄
DWORD m_dwThreadID; //电脑思考线程ID
BOOL m_bIsThinking;
BOOL m_bShow; //用于窗口的显示与隐藏
HICON m_hIcon;
CMoveGenerator* m_pMG;//走法产生
stack<UnDoMove> m_stackUndoMove;//记录走法的栈,便于悔棋
stack<UnDoMove> m_stackRedoMove;//记录已悔棋的走法的栈,便于还原
int m_BkSound;
CMyCoolMenu m_Menu;
CMyCoolMenu m_RMenu;
CCpuUsgesCtl m_MyCpuCtrl;
// Generated message map functions
//{{AFX_MSG(CChineseChessDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnBtnSend();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg void OnSetExit();
afx_msg void OnSetGametype();
afx_msg void OnChangeEditMsg();
afx_msg void OnNetCreate();
afx_msg void OnNetJoin();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
afx_msg void OnBtnGiveup();
afx_msg void OnBtnReundo();
afx_msg void OnBtnUndo();
afx_msg void OnOpen();
afx_msg void OnSave();
afx_msg void OnBkg();
afx_msg void OnDiff0();
afx_msg void OnDiff1();
afx_msg void OnDiff2();
afx_msg void OnDiff3();
afx_msg void OnDiff4();
afx_msg void OnHelpAuthor();
afx_msg void OnHelpCchessnet();
afx_msg void OnHelpCumt();
afx_msg void OnHelpLearn();
afx_msg void OnSetBksound();
afx_msg void OnChessChessBoardColor();
afx_msg void OnHelpChesechess();
afx_msg void OnSetReset();
afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
afx_msg void OnInitMenu(CMenu* pMenu);
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
afx_msg void OnTuoPan(WPARAM wParam,LPARAM lParam);
afx_msg void OnClose();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnCpuandmem();
afx_msg void OnShow();
afx_msg void OnHide();
afx_msg void OnExit();
afx_msg void OnLinkServer1();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHINESECHESSDLG_H__A129C33C_9460_4E90_A2B1_8ED08DC4E1E0__INCLUDED_)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?