Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

TicTacToe - main.cpp

By: vsg1990 on Sep 17th, 2012  |  syntax: C++  |  size: 2.34 KB  |  views: 103  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }