Game.h
上传用户:kkzhu_0
上传日期:2007-01-05
资源大小:214k
文件大小:4k
源码类别:

棋牌游戏

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////////////////////////////////
  2. // Hander file: game.h
  3. //         Copyright( C ) 1997.5-1997.11
  4. ////////////////////////////////////////////////////////////////////////////////////////////
  5. #ifndef GAME_H
  6. #define GAME_H
  7. #include <afxwin.h>
  8. #include <afxtempl.h>
  9. #include <afxmt.h>
  10. #include <afxext.h>
  11. #define FIVE_MAX_LINE 15
  12. #define WZQ_I     2435
  13. #define WZQ_PING  WZQ_I + 1
  14. #define WZQ_ERROR WZQ_I + 2
  15. #define WZQ_YOU   WZQ_I + 3
  16. #define WZQ_RUN   WZQ_I + 4
  17. #define WZQ_HAVE  WZQ_I + 5
  18. #define WZQ_NOTHREAD  WZQ_I + 6
  19. #define WZQ_B     'B'
  20. #define WZQ_W     'W'
  21. #define WZQ_N     'N'
  22. ///////////////////////////////////////////////////////////////////////////////////////////
  23. // CFive 
  24. struct Step
  25. {
  26. int  m;
  27. int  n;
  28. char side;
  29. };
  30. struct Count
  31. {
  32. Step step;
  33. double count;
  34. };
  35. class CFive:public CWinThread
  36. {
  37. protected:
  38. ///////////////////////////////////////////////////////////////////////////////////////////
  39. // 平分参数
  40. static int WF1_1;
  41. static int WF1_2;
  42. static int WF1_3;
  43. static int WF1_4;
  44. static int WF0_1;
  45. static int WF0_2;
  46. static int WF0_3;
  47. static int WF0_4;
  48. static int WF2_3;
  49. static int WF2_4;
  50. static int WF5;
  51. ///////////////////////////////////////////////////////////////////////////////////////////
  52. // 搜索参数
  53. static int  DeepMax;
  54. static int  ThreadDeepMax;
  55. static int  BreadthMax;
  56. static int  Delta;
  57. static char Side;
  58. static BOOL PlayStateFlags;
  59. static int  PlayIndex;
  60. static char FiveArea[FIVE_MAX_LINE][FIVE_MAX_LINE]; 
  61. static CList<Step,Step>   StepList;            //每一步的列表
  62. static CArray<int,int>    ImpList;
  63. static CList<Count,Count> OneCountList;
  64. static CEvent KillWzqRun;
  65. static CStatusBar *pInfo;
  66. //////////////////////////////////////////////////////////////////////////////////////////
  67. // 临时参数
  68.     int    CurDeep;
  69. int    CurThreadDeep;
  70. int    CurBreadth;
  71. double CurCount;
  72. char   CurSide;
  73. CList<Count,Count> CountList;
  74. CList<Step,Step>   DeepList;
  75. static Count       PiShen;
  76. public:
  77. enum LEVE
  78.    {  COUNT_INC,  //使参数方分数增加最多
  79.   COUNT_SUB,  //使非参数方分数减少最多
  80.   COUNT_MID,  //平均
  81.   COUNT_DELTA,
  82.   COUNT_ALPHA,
  83. };
  84. static long        MemoryCount;
  85. static int         ThreadCount;
  86. static long        JingDuCount;
  87. protected:
  88. ////////////////////////////////////////////////////////////////////////////////////////////
  89. // 平分机制
  90. int  Dump( int Num,int Wflag );
  91. long SreachLine( char *Line,int Num,char Side );
  92. long SreachArea( char  Area[][FIVE_MAX_LINE],char NF );
  93.     void CalRun( char Nf,LEVE leve );
  94.     BOOL BiTest( int& mm,int& nn );
  95. void ResumePlayState();
  96.     void UpdatePlay();
  97. ///////////////////////////////////////////////////////////////////////////////////////////
  98. //
  99. void ThreadRun();
  100. void    AddDeepList( Step step );
  101. Step    GetLastDeepList();
  102. double  GetStepCount();
  103. public:
  104. CEvent  EndEvent;
  105. ///////////////////////////////////////////////////////////////////////////////////////////
  106. // 初始化
  107. CFive();
  108. protected:
  109. CFive( char side,int deep,int breadth,int threaddeep );
  110. public:
  111. ~CFive();
  112. void WzqInit( char side,BOOL flags = TRUE  );
  113. ///////////////////////////////////////////////////////////////////////////////////////////
  114. // 参数设置
  115. void SetDump( int Num,int Wflag,int count );
  116. int  GetDump( int Num,int Wflag );
  117. void SetParam( int breadth,int deep,int thread,int delta );
  118. void GetParam( int& breadth,int& deep,int& thread,int& delta );
  119. int  WzqTest( int m,int n );
  120.     int  WzqEndTest();
  121. int  WzqRun( int &m,int &n );
  122. char GetSubPosition( int m,int n );
  123. char GetSide();
  124. BOOL HuiOneStep();
  125. BOOL BackEndStep();
  126. BOOL BackOneStep();
  127. BOOL FowardOneStep();
  128. BOOL OneStep();
  129. void InListBox( CComboBox& box );
  130.     int  GetCurStep(int&m,int&n);
  131. void KillWzqThread();
  132. void NoKillThread();
  133. void SetInfo( CStatusBar*p);
  134. //////////////////////////////////////////////////////////////////////////////////////////
  135. // 线程部分
  136. BOOL InitInstance();
  137. int  ExitInstance();
  138. void Serialize( CArchive& ar );
  139. DECLARE_SERIAL( CFive )
  140. };
  141. #endif