Advertisement
Loan198

Untitled

Apr 19th, 2020
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.81 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. int a[12];
  4. int n, sum1 = 0, sum2 = 0;
  5. bool n1 = true, n2 = false,kt;
  6. bool king1 = true, king2 = true;
  7. void clearScreen() {
  8. system("cls");
  9. }
  10. int sum_r()
  11. {
  12. int sum = 0;
  13. while ( (n<11 && a[n] == 0 && a[n+1] != 0) || ( n == 11 && a[1] != 0))
  14. {
  15. if ( n == 5) king2 = false;
  16. if ( n< 11)
  17. {
  18. sum += a[n+1];
  19. a[n+1] = 0;
  20. }
  21. if ( n < 10) n += 2;
  22. else if ( n == 10 ) n = 0;
  23. else
  24. { king1 = false;
  25. sum += a[0];
  26. a[0] = 0;
  27. n = 1;
  28. }
  29. }
  30. return sum;
  31. }
  32. int sum_l()
  33. {
  34. int sum = 0;
  35. while ( (n>0 && a[n] == 0 && a[n-1] != 0)|| ( n == 0 && a[11] != 0))
  36. {
  37. if ( n == 7) king2 = false;
  38. if ( n> 1)
  39. {
  40. sum += a[n-1];
  41. a[n-1] = 0;
  42. n -= 2;
  43. }
  44. else if ( n == 1 )
  45. {
  46. king1 = false;
  47. sum += a[0];
  48. a[0] = 0;
  49. n = 11;
  50. }
  51. else {
  52. sum += a[11];
  53. a[11] = 0;
  54. n = 10;
  55. }
  56. }
  57. return sum;
  58. }
  59. void update()
  60. {
  61. kt = false;
  62. if ( n1 )
  63. {
  64. for ( int i =1; i< 6; i++)
  65. if ( a[i]> 0)
  66. {
  67. kt = true;
  68. break;
  69. }
  70. if ( !kt )
  71. {
  72. for ( int i =1; i< 6; i++)
  73. a[i] ++;
  74. sum1 -= 5;
  75. }
  76. }
  77. if ( n2 )
  78. {
  79. for ( int i =7; i< 12; i++)
  80. if ( a[i]> 0)
  81. {
  82. kt = true;
  83. break;
  84. }
  85. if ( !kt )
  86. {
  87. for ( int i =7; i< 12; i++)
  88. a[i] ++;
  89. sum2 -= 5;
  90. }
  91. }
  92. }
  93. bool check ()
  94. {
  95. if (a[n] >0 && n != 0 && n!=6 ) return true;
  96. if ( (n == 0) && (king1 == false) && a[n] > 0 ) return true;
  97. if ( n == 0 && king1 == true && a[n]> 10) return true;
  98. if ( n == 6 && king2 == true && a[n]> 10) return true;
  99. if ( (n == 6) && (king2 == false) && a[n] > 0) return true;
  100. return false;
  101. }
  102.  
  103. void di_p()
  104. {
  105. int s;
  106. if ( n == 6 || n == 0) s = 1;
  107. else
  108. s = a[n];
  109. int x = s / 12;
  110. if ( x> 0)
  111. {
  112. for ( int i = 0; i< 12; i++)
  113. if ( i != n ) a[i] += x;
  114. s -= 12*x;
  115. }
  116. if ( s + n < 12)
  117. {
  118. for ( int i = n+1; i<= n+ s; i++)
  119. a[i] ++;
  120. if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
  121. else a[n] = x;
  122. n = n + s + 1;
  123. if ( n == 12 ) n = 0;
  124. }
  125. else
  126. {
  127. for ( int i = n+1; i<12; i++)
  128. a[i]++;
  129. s -= (11 - n);
  130. for ( int i = 0; i< s; i++)
  131. a[i]++;
  132. if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
  133. else a[n] = x;
  134. n = s;
  135. if ( n == 12) n =0;
  136. }
  137. }
  138. void di_t()
  139. {
  140. int s;
  141. if ( n == 6 || n == 0) s = 1;
  142. else s = a[n];
  143. int x = s / 12;
  144. if ( x> 0)
  145. {
  146. for ( int i = 0; i< 12; i++)
  147. if ( i != n ) a[i] += x;
  148. s -= 12*x;
  149. }
  150. if ( n - s >= 0)
  151. {
  152. for ( int i = n-1; i>= n- s; i--)
  153. a[i] ++;
  154. if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
  155. else a[n] = x;
  156. n = n - s - 1;
  157. if ( n == -1 ) n = 11;
  158. }
  159. else
  160. {
  161. for ( int i = n-1; i>= 0; i--)
  162. a[i]++;
  163. s -= n;
  164. for ( int i = 11; i> 11 - s; i--)
  165. a[i]++;
  166. if ( n == 6 || n == 0) a[n] = a[n] - 1 + x;
  167. else a[n] = x;
  168. n = 11- s;
  169. }
  170. }
  171. void xuat()
  172. {
  173. for ( int i =0; i< 6; i++)
  174. cout<< a[i]<< '\t';
  175. cout<< endl<< '\t';
  176. for ( int i =11; i>5 ; i--)
  177. cout<< a[i]<<'\t';
  178. cout<< endl;
  179. }
  180. int main()
  181. {
  182. cout<< "Position:"<< endl;
  183. for ( int i =0; i< 6; i++)
  184. cout<< i << '\t';
  185. cout<< endl<< '\t';
  186. for ( int i =11; i>5 ; i--)
  187. cout<< i <<'\t';
  188. cout<< endl<< endl<< endl;
  189. for ( int i =0; i< 12; i++)
  190. a[i] =5;
  191. a[0] = 10, a[6] = 10;
  192. xuat();
  193. while ( a[0] > 0 || a[6] > 0)
  194. {
  195. if ( n1 ) cout<< "Player 1 chooses the number: ";
  196. else cout<< "Player 2 chooses the number: ";
  197. cin>> n;
  198. char huong;
  199. cout<< endl<< "left = l & right = r: ";
  200. cin>> huong;
  201. clearScreen();
  202. while ( check())
  203. {
  204. if ( n1 )
  205. {
  206. if ( huong == 'l' ) di_t ();
  207. else di_p();
  208. xuat();
  209. }
  210. else
  211. {
  212. if ( huong == 'l' ) di_p();
  213. else di_t();
  214. xuat();
  215. }
  216. }
  217. if ( a[n] == 0) {
  218. if ( n1)
  219. {
  220. if ( huong == 'l' )
  221. {
  222. sum1 += sum_l();
  223. }
  224. else
  225. {
  226. sum1 += sum_r();
  227. }
  228. }
  229. else{
  230. if ( huong == 'r')
  231. {
  232. sum2 += sum_l();
  233. }
  234. else
  235. {
  236. sum2 += sum_r();
  237. }
  238. }
  239. }
  240. if ( n1)
  241. {
  242. n1 = false;
  243. n2 = true;
  244. }
  245. else {
  246. n2 = false;
  247. n1 = true;
  248. }
  249. update();
  250. cout<< "Score of player 1: "<< sum1<< '\t'<< "Score of player 2: "<< sum2<< endl;
  251. cout<< endl;
  252. xuat();
  253. }
  254. if ( sum1 > sum2 ) cout<< "Player 1 wins !!!";
  255. else if ( sum1 < sum2) cout<< "Player 2 wins!!!";
  256. return 0;
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement