Guest User

Untitled

a guest
Mar 5th, 2011
1,284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.72 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     const int ROW=3;
  8.     const int COL=3;
  9.     bool bGameOver= false;
  10.     char board[ROW][COL] = {{'1', '2', '3'},
  11.                          {'4', '5', '6'},
  12.                          {'7', '8', '9'}};
  13.    
  14.    
  15.     while (!bGameOver)//main game loop
  16.     {
  17.    
  18.           // print board
  19.           for (int i = 0; i<ROW; ++i)
  20.           {
  21.               cout<<board[i][0]<<"|"<<board[i][1]<<"|"<<board[i][2]<<endl;
  22.               if (i==0 || i==1)
  23.               {
  24.                       cout<<"-+-+-"<<endl;
  25.               }
  26.           }
  27.          
  28.           // set player mark
  29.           int playerTurn=1;
  30.           char playerMark;
  31.           if (playerTurn == 1) // sets player mark, X for player 1 O for play 2
  32.           {
  33.               playerMark = 'X';
  34.           }
  35.           else
  36.           {
  37.               playerMark = 'O';
  38.           }
  39.                    
  40.           // ask for player move
  41.           char nextMove;
  42.           cout<<"Player "<<playerTurn<<" please pick a spot to place "<<playerMark<<" using numbers from the board"<<endl;
  43.          
  44.          
  45.          
  46.           bool validMove=false;
  47.          
  48.           while (!validMove) // checks for valid move
  49.           {
  50.                 validMove=true;
  51.                 cin>>nextMove;
  52.                 if(nextMove == 1 && board[0][0] == 1)
  53.                             {
  54.                                  board[0][0] = playerMark;
  55.                             }
  56.                 if(nextMove == 2 && board[0][1] == 2)
  57.                      {
  58.                                  board[0][1] = playerMark;
  59.                      }
  60.                 if(nextMove == 3 && board[0][2] == 3)
  61.                      {
  62.                                  board[0][2] = playerMark;
  63.                      }
  64.                 if(nextMove == 4 && board[1][0] == 4)
  65.                      {
  66.                                  board[1][0] = playerMark;
  67.                      }
  68.                 if(nextMove == 5 && board[1][1] == 5)
  69.                      {
  70.                                  board[1][1] = playerMark;
  71.                      }
  72.                 if(nextMove == 6 && board[1][2] == 6)
  73.                      {
  74.                                  board[1][2] = playerMark;
  75.                      }
  76.                 if(nextMove == 7 && board[2][0] == 7)
  77.                      {
  78.                                  board[2][0] = playerMark;
  79.                      }
  80.                 if(nextMove == 8 && board[2][1] == 8)
  81.                      {
  82.                                  board[2][1] = playerMark;
  83.                      }
  84.                 if(nextMove == 9 && board[2][2] == 9)
  85.                      {
  86.                                  board[2][2] = playerMark;
  87.                      }
  88.                 else
  89.                      {
  90.                                  cout<<"Invalid Move, please try again!"<<endl;
  91.                                  validMove = false;
  92.                      }
  93.           }
  94.           // check for game over conditions
  95.           if (board[0][0] != '1') // see if row 0 or col 0 are the same playerMark
  96.           {
  97.                           if (board[0][0] == board[0][1] && board[0][0] == board[0][2]) // checks row 0
  98.                           {
  99.                                           bGameOver=true;
  100.                           }
  101.                           if (board[0][0] == board[1][0] && board[0][0] == board[2][0])//checks col 0
  102.                           {
  103.                                           bGameOver=true;
  104.                           }
  105.           }
  106.           if (board[2][2] != '9')// see if row 2 or col 2 are the same playrMark
  107.           {
  108.                           if (board[2][2] == board[2][1] && board[2][2] == board[2][0])// checks row 2
  109.                           {
  110.                                           bGameOver=true;
  111.                           }
  112.                           if (board[2][2] == board[1][2] && board[2][2] == board[0][2])// checks col 2
  113.                           {
  114.                                           bGameOver=true;
  115.                           }
  116.           }
  117.           if (board[1][1] != '5')
  118.           {
  119.                           if(board[1][1] == board[0][1] && board[1][1] == board[2][1])// checks col 1
  120.                           {
  121.                                          bGameOver=true;
  122.                           }
  123.                           if(board[1][1] == board[1][0] && board[1][1] == board[1][2])// checks row 1
  124.                           {
  125.                                          bGameOver=true;
  126.                           }
  127.                           if(board[1][1] == board[0][0] && board[1][1] == board[2][2])// check if 1 and 9 are equal to 5
  128.                           {
  129.                                          bGameOver=true;
  130.                           }
  131.                           if(board[1][1] == board[2][0] && board[1][1] == board[0][2])// check if 3 and 7 are equal to 5
  132.                           {
  133.                                          bGameOver=true;
  134.                           }
  135.           }
  136.          
  137.           // check for a tie
  138.           bool bWinGame=true; // assumes someone won
  139.           if (board[0][0] !='1' && board[0][1] !='2' && board[0][2] !='3' &&
  140.               board[1][0] !='4' && board[1][1] !='5' && board[1][2] !='6' &&
  141.               board[2][0] !='7' && board[2][1] !='8' && board[2][2] !='9' &&
  142.               !bGameOver)
  143.           {
  144.               bGameOver=true;
  145.               bWinGame=false;
  146.               cout<<"Its a Tie!"<<endl;
  147.           }
  148.          
  149.           // congradulate winner if bGameOver and ask to play again
  150.          
  151.           while (bGameOver)
  152.           {
  153.                         if(bWinGame) // gratz on winning
  154.                         {
  155.                                     cout<<"Player "<<playerTurn<<" wins!\n";
  156.                         }
  157.                        
  158.                         char again;
  159.                         cout<<"Would you like to play again? (y/n)";
  160.                         cin>>again;
  161.                        
  162.                         if (again == 'y' || again == 'Y')
  163.                         {
  164.                                   bGameOver=false; // reset game
  165.                                   bWinGame=true; // assume someone will win next game
  166.                                  
  167.                                   board[0][0] = '1';
  168.                                   board[0][1] = '2';
  169.                                   board[0][2] = '3';
  170.                                   board[1][0] = '4';
  171.                                   board[1][1] = '5';
  172.                                   board[1][2] = '6';
  173.                                   board[2][0] = '7';
  174.                                   board[2][1] = '8';
  175.                                   board[2][2] = '9';
  176.                         }
  177.                        
  178.                         else if (again == 'n' || again == 'N')
  179.                         {
  180.                                   cout<<"Thanks for playing!\n"; // say thanks for playing
  181.                                   break;
  182.                         }
  183.                        
  184.                         else
  185.                         {
  186.                             cout<<"Please use y or n only"<<endl;
  187.                         }
  188.           }
  189.          
  190.           if (!bGameOver) // if the game is not over switch turns
  191.           {
  192.                          if (playerTurn==1)
  193.                          {
  194.                                          playerTurn=2;
  195.                          }
  196.                          else
  197.                          {
  198.                                          playerTurn=1;
  199.                          }
  200.           }    
  201.     } // game loop over
  202.  system("Pause");
  203.  return 0;
  204.  
  205. }
Advertisement
Add Comment
Please, Sign In to add comment