Advertisement
Guest User

OOP TicTacToe

a guest
Jun 18th, 2015
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.22 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. class TicTacToe {
  7. public:
  8.     TicTacToe() { }
  9.     ~TicTacToe() {}
  10.     int playerWins;
  11.     bool isDraw;
  12.     void draw_board(char board[])
  13.     {
  14.         cout << board[0] << " " << board[1] << " " << board[2] << endl;
  15.         cout << "-+-+-" << endl;
  16.         cout << board[3] << " " << board[4] << " " << board[5] << endl;
  17.         cout << "-+-+-" << endl;
  18.         cout << board[6] << " " << board[7] << " " << board[8] << endl;
  19.  
  20.     }
  21.     void clearScreen(){
  22.         for (int i = 0; i < 50; i++)
  23.             cout << endl;
  24.     }
  25.     bool isGameOver(char board[])
  26.     {
  27.         if (board[0] == 'X' && board[1] == 'X' && board[2] == 'X' || board[0] == 'X' && board[3] == 'X' && board[6] == 'X' || board[3] == 'X' && board[4] == 'X' && board[5] == 'X'
  28.             || board[6] == 'X' && board[7] == 'X' && board[8] == 'X' || board[1] == 'X' && board[4] == 'X' && board[7] == 'X' || board[2] == 'X' && board[5] == 'X' && board[8] == 'X'
  29.             || board[0] == 'X' && board[4] == 'X' && board[8] == 'X' || board[2] == 'X' && board[4] == 'X' && board[6] == 'X') {
  30.             this->playerWins = 1;
  31.             return true;
  32.         }
  33.         else if (board[0] == 'O' && board[1] == 'O' && board[2] == 'O' || board[0] == 'O' && board[3] == 'O' && board[6] == 'O' || board[3] == 'O' && board[4] == 'X' && board[5] == 'O'
  34.             || board[6] == 'O' && board[7] == 'O' && board[8] == 'O' || board[1] == 'O' && board[4] == 'O' && board[7] == 'O' || board[2] == 'O' && board[5] == 'X' && board[8] == 'O'
  35.             || board[0] == 'O' && board[4] == 'O' && board[8] == 'O' || board[2] == 'O' && board[4] == 'O' && board[6] == 'O') {
  36.             this->playerWins = 2;
  37.             return true;
  38.         }
  39.         else {
  40.             isDraw = true;
  41.         }
  42.         return false;
  43.     }
  44.  
  45. };
  46.  
  47. int main() {
  48.     TicTacToe classhandler;
  49.     int playerTurn = 1;
  50.     char playerMark, choice;
  51.     char board[] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
  52.     do {
  53.         classhandler.clearScreen();
  54.         classhandler.draw_board(board);
  55.         if (playerTurn == 1)
  56.         {
  57.             playerMark = 'X';
  58.         }
  59.         else if (playerTurn == 2)
  60.         {
  61.             playerMark = 'O';
  62.         }
  63.         cout << "Player " << playerTurn << ": ";
  64.         cin >> choice;
  65.         switch (choice)
  66.         {
  67.         case '1':
  68.             if (playerTurn == 1)
  69.             {
  70.                 board[0] = playerMark;
  71.                 playerTurn = 2;
  72.             }
  73.             else if (playerTurn == 2)
  74.             {
  75.                 board[0] = playerMark;
  76.                 playerTurn = 1;
  77.             }
  78.             break;
  79.         case '2':
  80.             if (playerTurn == 1)
  81.             {
  82.                 board[1] = playerMark;
  83.                 playerTurn = 2;
  84.             }
  85.             else if (playerTurn == 2)
  86.             {
  87.                 board[1] = playerMark;
  88.                 playerTurn = 1;
  89.             }
  90.             break;
  91.         case '3':
  92.             if (playerTurn == 1)
  93.             {
  94.                 board[2] = playerMark;
  95.                 playerTurn = 2;
  96.             }
  97.             else if (playerTurn == 2)
  98.             {
  99.                 board[2] = playerMark;
  100.                 playerTurn = 1;
  101.             }
  102.             break;
  103.         case '4':
  104.             if (playerTurn == 1)
  105.             {
  106.                 board[3] = playerMark;
  107.                 playerTurn = 2;
  108.             }
  109.             else if (playerTurn == 2)
  110.             {
  111.                 board[3] = playerMark;
  112.                 playerTurn = 1;
  113.             }
  114.             break;
  115.         case '5':
  116.             if (playerTurn == 1)
  117.             {
  118.                 board[4] = playerMark;
  119.                 playerTurn = 2;
  120.             }
  121.             else if (playerTurn == 2)
  122.             {
  123.                 board[4] = playerMark;
  124.                 playerTurn = 1;
  125.             }
  126.             break;
  127.         case '6':
  128.             if (playerTurn == 1)
  129.             {
  130.                 board[5] = playerMark;
  131.                 playerTurn = 2;
  132.             }
  133.             else if (playerTurn == 2)
  134.             {
  135.                 board[5] = playerMark;
  136.                 playerTurn = 1;
  137.             }
  138.             break;
  139.         case '7':
  140.             if (playerTurn == 1)
  141.             {
  142.                 board[6] = playerMark;
  143.                 playerTurn = 2;
  144.             }
  145.             else if (playerTurn == 2)
  146.             {
  147.                 board[6] = playerMark;
  148.                 playerTurn = 1;
  149.             }
  150.             break;
  151.         case '8':
  152.             if (playerTurn == 1)
  153.             {
  154.                 board[7] = playerMark;
  155.                 playerTurn = 2;
  156.             }
  157.             else if (playerTurn == 2)
  158.             {
  159.                 board[7] = playerMark;
  160.                 playerTurn = 1;
  161.             }
  162.             break;
  163.         case '9':
  164.             if (playerTurn == 1)
  165.             {
  166.                 board[8] = playerMark;
  167.                 playerTurn = 2;
  168.             }
  169.             else if (playerTurn == 2)
  170.             {
  171.                 board[8] = playerMark;
  172.                 playerTurn = 1;
  173.             }
  174.             break;
  175.         default:
  176.             break;
  177.         }
  178.     } while (!classhandler.isGameOver(board));
  179.     classhandler.clearScreen();
  180.     classhandler.draw_board(board);
  181.     if (classhandler.playerWins = 1)
  182.     {
  183.         cout << "Game Over! Player One Wins!" << endl;
  184.     }
  185.     else if (classhandler.playerWins = 2)
  186.     {
  187.         cout << "Game Over! Player Two Wins!" << endl;
  188.     }
  189.     else {
  190.         cout << "Game Over! Its a draw!" << endl;
  191.     }
  192.     system("pause");
  193.     return 0;
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement