CServerLogic.h
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:5k
源码类别:

游戏

开发平台:

Visual C++

  1. // Copyright (C) 1991 - 1999 Rational Software Corporation
  2. #if defined (_MSC_VER) && (_MSC_VER >= 1000)
  3. #pragma once
  4. #endif
  5. #ifndef _INC_CSERVERLOGIC_3D19D50B035E_INCLUDED
  6. #define _INC_CSERVERLOGIC_3D19D50B035E_INCLUDED
  7. //##ModelId=3D19D50B035E
  8. class CServerLogic 
  9. {
  10. public:
  11. //##ModelId=3D19D50B037C
  12. CServerLogic();
  13. //##ModelId=3D19D50B03D6
  14. CServerLogic(CPtrList* pListFourUser);
  15. //##ModelId=3D19D50C008F
  16. void InitBridgeGame(CPtrList* pListFourUser);
  17. //开始叫牌过程
  18. //##ModelId=3D19D50C00D5
  19. void DoCallCard(void );
  20. //开始打牌过程
  21. //##ModelId=3D19D50C0125
  22. void DoPopCard(void );
  23. //结束本次比赛
  24. //##ModelId=3D19D50C0175
  25. void DoPlayEnd(void );
  26. //##ModelId=3D19D50C01BB
  27. void SetCurNum(int nCurNum);
  28. //##ModelId=3D19D50C01F7
  29. int GetCurNum(void );
  30. //##ModelId=3D19D50D002C
  31. BYTE GetPhase(void );
  32. //##ModelId=3D19D50D005E
  33. void SetPhase(BYTE bytePhase);
  34. //##ModelId=3D19D50D009A
  35. CPtrList* GetListAllCard(void );
  36. //取得当前的叫牌方向
  37. //##ModelId=3D19D50D00CC
  38. BYTE GetCurCallDirect(void );
  39. //取得以前的叫牌方向
  40. //##ModelId=3D19D50D0108
  41. BYTE GetOldCallDirect(void );
  42. //##ModelId=3D19D50D0180
  43. void SetStateUserCount(BYTE byteStateUserCount);
  44. //##ModelId=3D19D50D01BC
  45. BYTE GetStateUserCount(void );
  46. //##ModelId=3D19D50D01EE
  47. CPtrList* GetListCallCard(void );
  48. //##ModelId=3D19D50D027B
  49. void SetPromise(void );
  50. //##ModelId=3D19D50D02AD
  51. LPNODECALLCARD GetPromise(void );
  52. //##ModelId=3D19D50D0393
  53. CString GetPromiseUserId(void );
  54. //##ModelId=3D19D50D03BB
  55. BYTE GetOldPopDirect(void );
  56. //##ModelId=3D19D50E0019
  57. BYTE GetCurPopDirect(void );
  58. //##ModelId=3D19D50E005F
  59. CPtrList* GetListPopCard(void );
  60. //##ModelId=3D19D50E009B
  61. CPtrList* GetListFourCard(void );
  62. //##ModelId=3D19D50E00C3
  63. CPtrList* GetListSureAlert(void );
  64. //##ModelId=3D19D50E00F6
  65. CCardObj* CompareCard(void );
  66. //##ModelId=3D19D50E011E
  67. BOOL CheckPopCardIsOver(void );
  68. //##ModelId=3D19D50E0146
  69. void CalculateCent(void );
  70. //##ModelId=3D19D50E0272
  71. CPtrList* GetListPlayResult(void );
  72. //取得一个用户指针
  73. //##ModelId=3D19D50E02F4
  74. LPPLAYUSERINFO GetUserInfoById(CString strUserId);
  75. //取得一个用户的得分情况指针
  76. //##ModelId=3D19D50E0308
  77. LPPLAYRESULT GetUserResultById(CString strUserId);
  78. //取得一个用户信息BY方向
  79. //##ModelId=3D19D50E0326
  80. LPPLAYUSERINFO GetUserInfoByDirect(BYTE byDirect);
  81. //根据USERID取得他的确认信息
  82. //##ModelId=3D19D50E034E
  83. LPSUREALERT GetSureAlertByUserId(CString strUserId);
  84. //取得确认声称中正确的信息个数
  85. //##ModelId=3D19D50E036C
  86. int GetSureAlertTrueCount(void );
  87. //设置声称吨数
  88. //##ModelId=3D19D50E03C7
  89. void SetAlertPromise(CString strUserId, int nAlertTons);
  90. //##ModelId=3D19D50E03E5
  91. LPALERTPROMISE GetAlertPromise(void );
  92. //添加一个叫牌过程
  93. //##ModelId=3D19D50F0011
  94. void AddCallCardInfo(BYTE byteCallColor, BYTE byteCallNumber, BYTE byteCallSign, CString strUserId);
  95. //##ModelId=3D19D50F0089
  96. void AddPopCardInfoToFourCardList(BYTE bytePopColor, BYTE bytePopNumber, CString strUserId);
  97. private:
  98. //##ModelId=3D19D51103CB
  99. CRITICAL_SECTION m_csListCallCard;
  100. //##ModelId=3D19D512000B
  101. CRITICAL_SECTION m_csListPopCard;
  102. //##ModelId=3D19D5120033
  103. CRITICAL_SECTION m_csListSureAlert;
  104. //##ModelId=3D19D512005B
  105. CRITICAL_SECTION m_csShowPopEndCount;
  106. //##ModelId=3D19D512008D
  107. CRITICAL_SECTION m_csGameEnd;
  108. //##ModelId=3D19D51200B5
  109. CRITICAL_SECTION m_csGetCurPopDirect;
  110. //##ModelId=3D19D51200DD
  111. CRITICAL_SECTION m_csStateUserCount;
  112. //##ModelId=3D19D512010F
  113. CRITICAL_SECTION m_csUserBreakGame;
  114. //##ModelId=3D19D5120137
  115. BYTE m_byteGameState;
  116. //##ModelId=3D19D5120192
  117. int m_nCurNum;
  118. //##ModelId=3D19D51201C4
  119. BYTE m_bytePhase;
  120. //##ModelId=3D19D51201EC
  121. BYTE m_byteFirstCallDirect;
  122. //##ModelId=3D19D512021E
  123. BYTE m_byteCurCallDirect;
  124. //##ModelId=3D19D5120246
  125. BYTE m_byteOldCallDirect;
  126. //##ModelId=3D19D5120278
  127. BYTE m_byteStateUserCount;
  128. //##ModelId=3D19D5120318
  129. CString m_strViewUserId;
  130. //##ModelId=3D19D512034A
  131. CString m_strFirstUserId;
  132. //打牌过程
  133. //##ModelId=3D19D5120372
  134. BYTE m_byteFirstPopDirect;
  135. //##ModelId=3D19D51203AE
  136. BYTE m_byteCurPopDirect;
  137. //##ModelId=3D19D5130002
  138. BYTE m_byteOldPopDirect;
  139. //##ModelId=3D19D5130034
  140. BYTE m_byteTempPopDirect;
  141. //##ModelId=3D19D5130067
  142. BYTE m_byteEWCount;
  143. //##ModelId=3D19D5130099
  144. BYTE m_byteNSCount;
  145. //##ModelId=3D19D51300CB
  146. int m_nEastCent;
  147. //##ModelId=3D19D51300FD
  148. int m_nWestCent;
  149. //##ModelId=3D19D513012F
  150. int m_nNorthCent;
  151. //##ModelId=3D19D5130161
  152. int m_nSouthCent;
  153. //##ModelId=3D19D5130189
  154. BOOL m_bGoOnPop;
  155. //##ModelId=3D19D51301BB
  156. int m_nShowPopEndCount;
  157. //##ModelId=3D19D512016A
  158. LPPLAYUSERINFO m_arrNodeUser[4];
  159. //##ModelId=3D19D51202AB
  160. NODECALLCARD m_nodePromise;
  161. //##ModelId=3D19D51202E7
  162. ALERTPROMISE m_nodeAlertPromise;
  163. //##ModelId=3D19D50F01F1
  164. void DealCard(void );
  165. //##ModelId=3D19D50F02B0
  166. void DoPhase(void );
  167. //##ModelId=3D19D50F02F6
  168. void InitPlayFourUser(CPtrList* pListFourUser);
  169. //算当前赢吨数
  170. //##ModelId=3D19D51000F8
  171. void CalulateCount(void );
  172. //定约方赢吨
  173. //##ModelId=3D19D5100121
  174. void CalculateUpCount(int nCount);
  175. //定约方输吨
  176. //##ModelId=3D19D5100149
  177. void CalculateDownCount(int nCount);
  178. //##ModelId=3D19D5100167
  179. int GetMpCent(int nBaseCent, BYTE byType);
  180. };
  181. #endif /* _INC_CSERVERLOGIC_3D19D50B035E_INCLUDED */