ChrisCodes365

Old Tic

Dec 11th, 2022
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.10 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3. using namespace std;
  4.  
  5. class Board {
  6. protected:
  7.     char square[10] = { 'o','1','2','3','4','5','6','7','8','9' };
  8.  
  9. public:
  10.     void board()
  11.     {
  12.         system("cls");
  13.         cout << "\n\n\tTic Tac Toe\n\n";
  14.  
  15.         cout << "Player 1 (X)  -  Player 2 (O)" << endl << endl;
  16.         cout << endl;
  17.  
  18.         cout << "     |     |     " << endl;
  19.         cout << "  " << square[1] << "  |  " << square[2] << "  |  " << square[3] << endl;
  20.  
  21.         cout << "_____|_____|_____" << endl;
  22.         cout << "     |     |     " << endl;
  23.  
  24.         cout << "  " << square[4] << "  |  " << square[5] << "  |  " << square[6] << endl;
  25.  
  26.         cout << "_____|_____|_____" << endl;
  27.         cout << "     |     |     " << endl;
  28.  
  29.         cout << "  " << square[7] << "  |  " << square[8] << "  |  " << square[9] << endl;
  30.  
  31.         cout << "     |     |     " << endl << endl;
  32.     }
  33. };
  34.  
  35. class Player : protected Board {
  36. protected:
  37.  
  38.  
  39. public:
  40.     int choice()
  41.     {
  42.         int player = 1, i, choice;
  43.  
  44.         char mark;
  45.         do
  46.         {
  47.             board();
  48.             player = (player % 2) ? 1 : 2;
  49.  
  50.             cout << "Player " << player << ", enter a number:  ";
  51.             cin >> choice;
  52.  
  53.             mark = (player == 1) ? 'X' : 'O';
  54.  
  55.             if (choice == 1 && square[1] == '1')
  56.  
  57.                 square[1] = mark;
  58.             else if (choice == 2 && square[2] == '2')
  59.  
  60.                 square[2] = mark;
  61.             else if (choice == 3 && square[3] == '3')
  62.  
  63.                 square[3] = mark;
  64.             else if (choice == 4 && square[4] == '4')
  65.  
  66.                 square[4] = mark;
  67.             else if (choice == 5 && square[5] == '5')
  68.  
  69.                 square[5] = mark;
  70.             else if (choice == 6 && square[6] == '6')
  71.  
  72.                 square[6] = mark;
  73.             else if (choice == 7 && square[7] == '7')
  74.  
  75.                 square[7] = mark;
  76.             else if (choice == 8 && square[8] == '8')
  77.  
  78.                 square[8] = mark;
  79.             else if (choice == 9 && square[9] == '9')
  80.  
  81.                 square[9] = mark;
  82.             else
  83.             {
  84.                 cout << "Invalid move ";
  85.  
  86.                 player--;
  87.                 cin.ignore();
  88.                 cin.get();
  89.             }
  90.             i = checkwin();
  91.  
  92.             player++;
  93.         } while (i == -1);
  94.         board();
  95.         if (i == 1)
  96.  
  97.             cout << "==>\aPlayer " << --player << " win ";
  98.         else
  99.             cout << "==>\aGame draw";
  100.  
  101.         cin.ignore();
  102.         cin.get();
  103.         return 0;
  104.     }
  105.  
  106.     int checkwin()
  107.     {
  108.         if (square[1] == square[2] && square[2] == square[3])
  109.  
  110.             return 1;
  111.         else if (square[4] == square[5] && square[5] == square[6])
  112.  
  113.             return 1;
  114.         else if (square[7] == square[8] && square[8] == square[9])
  115.  
  116.             return 1;
  117.         else if (square[1] == square[4] && square[4] == square[7])
  118.  
  119.             return 1;
  120.         else if (square[2] == square[5] && square[5] == square[8])
  121.  
  122.             return 1;
  123.         else if (square[3] == square[6] && square[6] == square[9])
  124.  
  125.             return 1;
  126.         else if (square[1] == square[5] && square[5] == square[9])
  127.  
  128.             return 1;
  129.         else if (square[3] == square[5] && square[5] == square[7])
  130.  
  131.             return 1;
  132.         else if (square[1] != '1' && square[2] != '2' && square[3] != '3'
  133.             && square[4] != '4' && square[5] != '5' && square[6] != '6'
  134.             && square[7] != '7' && square[8] != '8' && square[9] != '9')
  135.  
  136.             return 0;
  137.         else
  138.             return -1;
  139.     }
  140.  
  141. };
  142.  
  143. class Operation : protected Player {
  144. protected:
  145.  
  146.  
  147. public:
  148.     void start()
  149.     {
  150.         choice();
  151.     }
  152. };
  153.  
  154. int main() {
  155.     Operation Op;
  156.     Op.start();
  157.  
  158.     _getch();
  159. }
Advertisement
Add Comment
Please, Sign In to add comment