NQueenDlg.h
上传用户:hncsjd
上传日期:2022-07-08
资源大小:3772k
文件大小:2k
源码类别:

其他智力游戏

开发平台:

Visual C++

  1. // NQueenDlg.h : header file
  2. //
  3. #if !defined(AFX_NQUEENDLG_H__8E9F8003_81C8_43D9_B35E_769E2F1767CD__INCLUDED_)
  4. #define AFX_NQUEENDLG_H__8E9F8003_81C8_43D9_B35E_769E2F1767CD__INCLUDED_
  5. #include "QueenPanel.h"
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. /////////////////////////////////////////////////////////////////////////////
  10. // CNQueenDlg dialog
  11. class CNQueenDlg : public CDialog
  12. {
  13. // Construction
  14. public:
  15. CNQueenDlg(CWnd* pParent = NULL); // standard constructor
  16. void UpdateUI();
  17. void WINAPI Go();
  18. // Dialog Data
  19. //{{AFX_DATA(CNQueenDlg)
  20. enum { IDD = IDD_NQUEEN_DIALOG };
  21. CQueenPanel m_panel;
  22. //}}AFX_DATA
  23. // ClassWizard generated virtual function overrides
  24. //{{AFX_VIRTUAL(CNQueenDlg)
  25. protected:
  26. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  27. //}}AFX_VIRTUAL
  28. // Implementation
  29. protected:
  30. HICON m_hIcon;
  31. // Generated message map functions
  32. //{{AFX_MSG(CNQueenDlg)
  33. virtual BOOL OnInitDialog();
  34. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  35. afx_msg void OnPaint();
  36. afx_msg HCURSOR OnQueryDragIcon();
  37. afx_msg void OnStart();
  38. afx_msg void OnPause();
  39. afx_msg void OnContinue();
  40. afx_msg void OnStop();
  41. afx_msg void OnAbout();
  42. afx_msg void OnClose();
  43. afx_msg void OnStepBy();
  44. afx_msg void OnNoInt();
  45. //}}AFX_MSG
  46. DECLARE_MESSAGE_MAP()
  47. private:
  48. static DWORD WINAPI ThreadGo( LPVOID lpParam ) ;
  49. void UpdateQPanel(int *queen);
  50. void UpdateQPanel(int row, int col);
  51. void DoPause();
  52. void WINAPI Step(int i);
  53. BOOLEAN m_step, m_no_int; //是否单步、是否不中断
  54. int count;
  55. int N;
  56. //记录皇后的位置,queen[i]表示第i行皇后的所在列的位置。
  57. int *queen;
  58. BOOLEAN *rk;
  59. BOOLEAN *lk;
  60. BOOLEAN *mk;
  61. BOOLEAN step, no_int;
  62. HANDLE pause_event, this_mutex;
  63. BOOLEAN canceling, running, pausing;
  64. };
  65. //{{AFX_INSERT_LOCATION}}
  66. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  67. #endif // !defined(AFX_NQUEENDLG_H__8E9F8003_81C8_43D9_B35E_769E2F1767CD__INCLUDED_)