Bertran_rz

cw

Sep 2nd, 2021 (edited)
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.61 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     srand(time(0));
  9.  
  10.     int const size = 3;
  11.     int field[size][size];
  12.  
  13.     int whoPlayTmp = 1;
  14.  
  15.     int game = 9;
  16.     int win = 1;
  17.  
  18.     for (int i = 0; i < size; i++)
  19.         for (int j = 0; j < size; j++)
  20.             field[i][j] = 0;
  21.  
  22.     //start game
  23.  
  24.     cout << "You play on \"o\"\n";
  25.    
  26.     do
  27.     {      
  28.         //отображения игрового поля
  29.         for (int i = 0; i < size; i++)
  30.         {
  31.             for (int j = 0; j < size; j++)
  32.             {
  33.                 if (field[i][j] == 0)
  34.                     cout << "-";
  35.                 else if (field[i][j] == 1)
  36.                     cout << "x";
  37.                 else if (field[i][j] == 2)
  38.                     cout << "o";
  39.             }
  40.             cout << endl;
  41.         }
  42.  
  43.         if (game % 2 == 0)
  44.         {
  45.             //ход Кампудахтора
  46.             cout << "Bot round\n\n";
  47.             do
  48.             {
  49.                 int x = rand() % 3;
  50.                 int y = rand() % 3;
  51.  
  52.                 if (field[y][x] != 0)
  53.                 {
  54.                     cout << "Field is using\n";
  55.                     continue;
  56.                 }
  57.                 else
  58.                 {
  59.                     field[y][x] = 1;
  60.                     break;
  61.                 }
  62.             } while (true);
  63.         }
  64.         else
  65.         {
  66.             //Ход игрока
  67.             int posX = 0, posY = 0;
  68.             cout << "User round\n\n";
  69.            
  70.             do
  71.             {
  72.                
  73.                 cout << "Choise the position where you want to mark through a space\n Example: 1 1 \n";
  74.                 cin >> posX >> posY;
  75.  
  76.                 if (posX >= 0 && posX < size && posY >= 0 && posY < size)
  77.                 {
  78.                     if (field[posY][posX] != 0)
  79.                     {
  80.                         cout << "Field is using\n";
  81.                         continue;
  82.                     }
  83.                     else
  84.                     {
  85.                         field[posY][posX] = 2;
  86.                         break;
  87.                     }
  88.                 }
  89.             } while (true);
  90.  
  91.         }
  92.  
  93.         whoPlayTmp = game % 2 == 0 ? 1 : 2;
  94.  
  95.         //
  96.         //Проверка горизонталей и вертикалей
  97.         //
  98.  
  99.         for (int i = 0; i < size && win; i++)
  100.         {        
  101.             int h = 0;
  102.             int v = 0;
  103.  
  104.             for (int j = 0; j < size; j++)
  105.             {
  106.                 if (field[i][j] == whoPlayTmp)
  107.                     h++;
  108.                 if (field[j][i] == whoPlayTmp)
  109.                     v++;
  110.             }
  111.  
  112.             if (h == 3 || v == 3) win = 0;
  113.         }
  114.  
  115.         //
  116.         //Проверка диагоналей
  117.         //
  118.         int fd = 0;
  119.         int sd = 0;
  120.         for (int i = 0; i < size && win; i++)
  121.         {
  122.             for (int j = 0; j < size; j++)
  123.             {
  124.                 if (i == j)
  125.                     if (field[i][j] == whoPlayTmp)
  126.                         fd++;
  127.                 if (i + j == size - 1)
  128.                     if (field[i][j] == whoPlayTmp)
  129.                         sd++;
  130.             }
  131.             if (fd == 3 || sd == 3) win = 0;
  132.         }
  133.  
  134.         //Отображение поля      
  135.        
  136.         game--;
  137.         Sleep(2000);
  138.         system("cls");
  139.     } while (game && win);
  140.  
  141.     //Результат
  142.     if (game == 0 && win != 0)
  143.         cout << "Draw\n";
  144.     else if (whoPlayTmp == 1)
  145.         cout << "Bot win\n";
  146.     else
  147.         cout << "User win\n";
  148. }
  149.  
Add Comment
Please, Sign In to add comment