ChessDlg.h
上传用户:onward9999
上传日期:2022-06-27
资源大小:989k
文件大小:4k
源码类别:

其他游戏

开发平台:

Visual C++

  1. // ChessDlg.h : header file
  2. //
  3. #include "CoolButton.h"
  4. #include "BaseClasses.h"
  5. #include "StepList.h"
  6. #include "Thinker.h"
  7. #if !defined(AFX_CHESSDLG_H__AA41CA9E_A877_11D4_9A6C_973E5A1E3F59__INCLUDED_)
  8. #define AFX_CHESSDLG_H__AA41CA9E_A877_11D4_9A6C_973E5A1E3F59__INCLUDED_
  9. #if _MSC_VER > 1000
  10. #pragma once
  11. #endif // _MSC_VER > 1000
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CChessDlg dialog
  14. class CChessDlg : public CDialog
  15. {
  16. // Construction
  17. public:
  18. void TestCheck();
  19. CSetting m_Setting;
  20. BOOL OpenWeb();
  21. BOOL OpenEmail(void);
  22. BOOL OpenURL(const char * LinkName);
  23. CChessDlg(CWnd* pParent = NULL); // standard constructor
  24. ~CChessDlg();
  25. // Dialog Data
  26. //{{AFX_DATA(CChessDlg)
  27. enum { IDD = IDD_CHESS_DIALOG };
  28. CCoolButton m_btCut;
  29. CProgressCtrl m_progressStep;
  30. CListBox m_listStep;
  31. CCoolButton m_btUndo;
  32. CCoolButton m_btRedo;
  33. CCoolButton m_btHelp;
  34. //}}AFX_DATA
  35. // ClassWizard generated virtual function overrides
  36. //{{AFX_VIRTUAL(CChessDlg)
  37. protected:
  38. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  39. //}}AFX_VIRTUAL
  40. // Implementation
  41. protected:
  42. BOOL m_bCheck[2];
  43. void New(void); //新棋局:
  44. void New(CFace face); //新棋局
  45. void Think(); //让电脑计算并走一步
  46. void ShowStatus(); //更新标题栏(显示当前状态)
  47. void Move(int man,int x,int y); //把棋子移动到目标点放下
  48. void MB_DrawStar(int x,int y,int i); //画星点(MakeBoard 中调用)
  49. void MakeBoard(); //画棋盘(*m_pdcBoard)
  50. void FixManMap(); //每次更新m_Face时调用,更新m_nManMap
  51. void UpdateFace(CRect& rc); //刷新棋盘指定区域
  52. void PickUp(int man); //拿起棋子
  53. void PutDown(int x,int y); //放下棋子
  54. void EnableCommand(int n,BOOL benable=TRUE);//允许或禁止某个操作
  55. BOOL FaceToPoint(CPoint& point); //坐标转换城棋位坐标
  56. BOOL CanGo(int man,int x,int y); //判断能不能走某步棋
  57. BOOL CanGo(const CMove& move ); //判断能不能走某步棋
  58. BOOL CanGo(); //判断当前能不能走
  59. BOOL Go(int man,int x,int y); //走某步棋
  60. BOOL Go(CMove move); //走某步棋
  61. CRect MakeUpdateRect(CPoint p1,CPoint p2); //通过两点鼠标坐标得到更新区域
  62. CString GetStepName(int man,int x,int y); //取得走法名
  63. CStepList m_StepList; //走法栈
  64. CPoint m_pointBeforePickUp; //拿起的棋子的原来的棋位
  65. CPoint m_pointPickUp; //拿起的棋子的屏幕位置
  66. int m_nTimer; //定时器
  67. int m_nManPickUp; //拿起的棋子序号
  68. int m_nManMap[11][12]; //纪录棋盘各棋位的状态(有无棋子/棋子序号)
  69. int m_nStepCount; //当前步数
  70. HICON m_hIcon; //程序图标
  71. HICON m_hIconUndo; //左箭头
  72. HICON m_hIconRedo; //右箭头
  73. HICON m_hIconHelp; //快进箭头
  74. HICON m_hIconCut; //取消
  75. HICON m_hIconMan[14]; //棋子图标
  76. CBitmap m_Bitmap1; //给 m_pdcBoard 做的位图
  77. CBitmap m_Bitmap2; //给 m_pdcBack 做的位图
  78. BOOL m_bThinking; //电脑是否正在计算
  79. CFace m_Face; //棋局数据
  80. CThinker m_Thinker; //***
  81. CDC* m_pdcBoard; //储存棋盘图案的 DC
  82. CDC* m_pdcBack; //缓冲 DC
  83. // Generated message map functions
  84. //{{AFX_MSG(CChessDlg)
  85. virtual BOOL OnInitDialog();
  86. afx_msg void OnAboutbox();
  87. afx_msg void OnPaint();
  88. afx_msg HCURSOR OnQueryDragIcon();
  89. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  90. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  91. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  92. afx_msg void OnDestroy();
  93. afx_msg void OnFileBai();
  94. afx_msg void OnFileNew();
  95. afx_msg void OnFileSave();
  96. afx_msg void OnFileOpen();
  97. afx_msg void OnFileOption();
  98. afx_msg void OnEditUndo();
  99. afx_msg void OnEditRedo();
  100. afx_msg void OnEditHelp();
  101. afx_msg void OnEditCut();
  102. afx_msg void OnTimer(UINT nIDEvent);
  103. afx_msg void OnDblclkSteplist();
  104. afx_msg void OnHelpEmail();
  105. afx_msg void OnHelpWeb();
  106. afx_msg void OnFileThinkOption();
  107. afx_msg void OnHelpUse();
  108. //}}AFX_MSG
  109. DECLARE_MESSAGE_MAP()
  110. friend class CBaiDlg;
  111. };
  112. //{{AFX_INSERT_LOCATION}}
  113. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  114. #endif // !defined(AFX_CHESSDLG_H__AA41CA9E_A877_11D4_9A6C_973E5A1E3F59__INCLUDED_)