Guest User

CROSSES AND ZEROES

a guest
Sep 4th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void alreadeGetted()
  7. {
  8. cout << "Эта клетка уже занята, вы получили следующую клетку, либо пропустили ход" << endl;
  9. }
  10.  
  11. int main()
  12. {
  13. string places[3][3] =
  14. {{"&"," & ","&"},
  15. {"&"," & ","&"},
  16. {"&"," & ","&"}};
  17.  
  18. for(int i = 0; i <= 2; i++){
  19. for(int j = 0; j <= 2; j++)
  20. cout << places[i][j];
  21. cout << endl;}
  22. int x, o;
  23. short z = 1;
  24. while(z <= 9)
  25. {
  26. cout << "X, выберите вашу клетку: ";
  27. cin >> x;
  28. switch(x)
  29. {
  30. case 1:
  31. if (places[0][0] != "O"){
  32. places[0][0] = "X";
  33. break;
  34. } else alreadeGetted();
  35. case 2:
  36. if (places[0][1] != " O "){
  37. places[0][1] = " X ";
  38. break;
  39. } else alreadeGetted();
  40. case 3:
  41. if (places[0][2] != "O"){
  42. places[0][2] = "X";
  43. break;
  44. } else alreadeGetted();
  45. case 4:
  46. if (places[1][0] != "O"){
  47. places[1][0] = "X";
  48. break;
  49. } else alreadeGetted();
  50. case 5:
  51. if (places[1][1] != " O "){
  52. places[1][1] = " X ";
  53. break;
  54. } else alreadeGetted();
  55. case 6:
  56. if (places[1][2] != "O"){
  57. places[1][2] = "X";
  58. break;
  59. } else alreadeGetted();
  60. case 7:
  61. if (places[2][0] != "O"){
  62. places[2][0] = "X";
  63. break;
  64. } else alreadeGetted();
  65. case 8:
  66. if (places[2][1] != " O "){
  67. places[2][1] = " X ";
  68. break;
  69. } else alreadeGetted();
  70. case 9:
  71. if (places[2][2] != "O"){
  72. places[2][2] = "X";
  73. break;
  74. } else alreadeGetted();
  75. case 1337:
  76. places[0][0] = "X";
  77. places[1][0] = "X";
  78. places[2][0] = "X";
  79. break;
  80. }
  81. system("cls");
  82. z++;
  83. for(int i = 0; i <= 2; i++){
  84. for(int j = 0; j <= 2; j++)
  85. cout << places[i][j];
  86. cout << endl;}
  87.  
  88. if((places[0][0] == "X" && places[0][1] == " X " && places[0][2] == "X") ||
  89. (places[1][0] == "X" && places[1][1] == " X " && places[1][2] == "X") ||
  90. (places[2][0] == "X" && places[2][1] == " X " && places[2][2] == "X") ||
  91. (places[0][0] == "X" && places[1][0] == "X" && places[2][0] == "X") ||
  92. (places[0][1] == " X " && places[1][1] == " X " && places[2][1] == " X ") ||
  93. (places[0][2] == "X" && places[1][2] == "X" && places[2][2] == "X") ||
  94. (places[0][0] == "X" && places[1][1] == " X " && places[2][2] == "X") ||
  95. (places[0][2] == "X" && places[1][1] == " X " && places[2][0] == "X"))
  96. {
  97. cout << "Победили X!" << endl;
  98. goto END;
  99. }
  100.  
  101. cout << "O, выберите вашу клетку: ";
  102. cin >> o;
  103. switch(o)
  104. {
  105. case 1:
  106. if (places[0][0] != "X"){
  107. places[0][0] = "O";
  108. break;
  109. } else alreadeGetted();
  110. case 2:
  111. if (places[0][1] != " X "){
  112. places[0][1] = " O ";
  113. break;
  114. } else alreadeGetted();
  115. case 3:
  116. if (places[0][2] != "X"){
  117. places[0][2] = "O";
  118. break;
  119. } else alreadeGetted();
  120. case 4:
  121. if (places[1][0] != "X"){
  122. places[1][0] = "O";
  123. break;
  124. } else alreadeGetted();
  125. case 5:
  126. if (places[1][1] != " X "){
  127. places[1][1] = " O ";
  128. break;
  129. } else alreadeGetted();
  130. case 6:
  131. if (places[1][2] != "X"){
  132. places[1][2] = "O";
  133. break;
  134. } else alreadeGetted();
  135. case 7:
  136. if (places[2][0] != "X"){
  137. places[2][0] = "O";
  138. break;
  139. } else alreadeGetted();
  140. case 8:
  141. if (places[2][1] != " X "){
  142. places[2][1] = " O ";
  143. break;
  144. } else alreadeGetted();
  145. case 9:
  146. if (places[2][2] != "X"){
  147. places[2][2] = "O";
  148. break;
  149. } else alreadeGetted();
  150. case 1337:
  151. places[0][0] = "O";
  152. places[1][0] = "O";
  153. places[2][0] = "O";
  154. break;
  155. }
  156. system("cls");
  157. z++;
  158. for(int i = 0; i <= 2; i++){
  159. for(int j = 0; j <= 2; j++)
  160. cout << places[i][j];
  161. cout << endl;}
  162.  
  163. if((places[0][0] == "O" && places[0][1] == " O " && places[0][2] == "O") ||
  164. (places[1][0] == "O" && places[1][1] == " O " && places[1][2] == "O") ||
  165. (places[2][0] == "O" && places[2][1] == " O " && places[2][2] == "O") ||
  166. (places[0][0] == "O" && places[1][0] == "O" && places[2][0] == "O") ||
  167. (places[0][1] == " O " && places[1][1] == " O " && places[2][1] == " O ") ||
  168. (places[0][2] == "O" && places[1][2] == "O" && places[2][2] == "O") ||
  169. (places[0][0] == "O" && places[1][1] == " O " && places[2][2] == "O") ||
  170. (places[0][2] == "O" && places[1][1] == " O " && places[2][0] == "O"))
  171. {
  172. cout << "Победили O!" << endl;
  173. goto END;
  174. }
  175. }
  176. cout << "Ничья." << endl;
  177. END:
  178. short ans;
  179. cout << "Выбери: \n"
  180. << "[1] Новая игра\n"
  181. << "[2] Выйти\n";
  182. cin >> ans;
  183. if (ans == 1)
  184. {
  185. system("cls");
  186. return main();
  187. }
  188. else if (ans == 2)
  189. {
  190. system("cls");
  191. cout << "Ты вышел из игры\n";
  192. return 0;
  193. }
  194. }
Advertisement
Add Comment
Please, Sign In to add comment