MaximGGoose

Tic-Tac-Toe

Jun 26th, 2023 (edited)
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.38 KB | Source Code | 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. }
Add Comment
Please, Sign In to add comment