Advertisement
vsg1990

TicTacToe - main.cpp

Sep 17th, 2012
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.34 KB | None | 0 0
  1. #include "main.h"
  2. #include <cctype>
  3.  
  4. int main()
  5. {
  6.     using std::cout;
  7.     using std::cin;
  8.     using std::endl;
  9.  
  10.     Board mainBoard = Board();
  11.  
  12.     cout << "Player 1 Name: ";
  13.     string sPlayer1;
  14.     cin >> sPlayer1;
  15.     sPlayer1 = "\"X\" " + sPlayer1;
  16.  
  17.     cout << "Player 2 Name: ";
  18.     string sPlayer2;
  19.     cin >> sPlayer2;
  20.     sPlayer2 = "\"O\" " + sPlayer2;
  21.  
  22.     mainBoard.ResetBoard();
  23.     mainBoard.PrintBoard();
  24.  
  25.     int nSpot = 0;
  26.     int setError = 0;
  27.     string sCurrentPlayer = "";
  28.     sCurrentPlayer = sPlayer1;
  29.     bool bPlayAgain = true;
  30.  
  31.     while(bPlayAgain)
  32.     {
  33.         while(!mainBoard.CheckWinCondition())
  34.         {
  35.             cout << sCurrentPlayer << "'s turn." << endl;
  36.             cout << "Choose a spot: ";
  37.             cin >> nSpot;
  38.             while(cin.fail())
  39.             {
  40.                 cin.clear();
  41.                 cin.ignore(100, '\n');
  42.                 nSpot = 0;
  43.                 continue;
  44.             }
  45.             if (sCurrentPlayer == sPlayer1)
  46.             {
  47.                 setError = mainBoard.SetSquare(nSpot, "X");
  48.                 if(!setError)
  49.                 {
  50.                     sCurrentPlayer = sPlayer2;
  51.                 }
  52.             }
  53.             else if (sCurrentPlayer == sPlayer2)
  54.             {
  55.                 setError = mainBoard.SetSquare(nSpot, "O");
  56.                 if(!setError)
  57.                 {
  58.                     sCurrentPlayer = sPlayer1;
  59.                 }
  60.             }
  61.             mainBoard.PrintBoard();
  62.             PrintError(setError);
  63.         }
  64.  
  65.         mainBoard.PrintBoard();
  66.         string sWinner = mainBoard.GetWinningPlayer();
  67.         if (sWinner == "X")
  68.         {
  69.             cout << sPlayer1 << " wins!!!!" << endl;
  70.         } else if (sWinner == "O")
  71.         {
  72.             cout << sPlayer2 << " wins!!!!" << endl;
  73.         } else if (sWinner == "Draw")
  74.         {
  75.             cout << "It's a draw!!!!" << endl;
  76.         }
  77.         cout << endl;
  78.         cout << "Would you like to play again? ";
  79.         string sAnswer = "";
  80.         cin >> sAnswer;
  81.         const int length = sAnswer.length();
  82.         for (int i = 0; i!=length; ++i)
  83.         {
  84.             sAnswer[i] = std::tolower(sAnswer[i]);
  85.         }
  86.         if ((sAnswer == "yes") || (sAnswer == "y"))
  87.         {
  88.             bPlayAgain = true;
  89.             mainBoard.ResetBoard();
  90.             sCurrentPlayer = sPlayer1;
  91.             mainBoard.PrintBoard();
  92.         }
  93.         else
  94.         {
  95.             bPlayAgain = false;
  96.         }
  97.     }
  98.     return 0;
  99. }
  100.  
  101. void PrintError(int error)
  102. {
  103.     using std::cout;
  104.     using std::endl;
  105.  
  106.     switch (error)
  107.     {
  108.     case 0:
  109.         {
  110.             return;
  111.         }
  112.     case 1:
  113.         {
  114.             cout << "That spot is taken. Try again." << endl;
  115.             return;
  116.         }
  117.     case 2:
  118.         {
  119.             cout << "You need to enter a number between 1 and 9. Try again." << endl;
  120.             return;
  121.         }
  122.     default:
  123.         {
  124.             cout << "Unknown Error. Please restart game." << endl;
  125.             return;
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement