#include "main.h" #include int main() { using std::cout; using std::cin; using std::endl; Board mainBoard = Board(); cout << "Player 1 Name: "; string sPlayer1; cin >> sPlayer1; sPlayer1 = "\"X\" " + sPlayer1; cout << "Player 2 Name: "; string sPlayer2; cin >> sPlayer2; sPlayer2 = "\"O\" " + sPlayer2; mainBoard.ResetBoard(); mainBoard.PrintBoard(); int nSpot = 0; int setError = 0; string sCurrentPlayer = ""; sCurrentPlayer = sPlayer1; bool bPlayAgain = true; while(bPlayAgain) { while(!mainBoard.CheckWinCondition()) { cout << sCurrentPlayer << "'s turn." << endl; cout << "Choose a spot: "; cin >> nSpot; while(cin.fail()) { cin.clear(); cin.ignore(100, '\n'); nSpot = 0; continue; } if (sCurrentPlayer == sPlayer1) { setError = mainBoard.SetSquare(nSpot, "X"); if(!setError) { sCurrentPlayer = sPlayer2; } } else if (sCurrentPlayer == sPlayer2) { setError = mainBoard.SetSquare(nSpot, "O"); if(!setError) { sCurrentPlayer = sPlayer1; } } mainBoard.PrintBoard(); PrintError(setError); } mainBoard.PrintBoard(); string sWinner = mainBoard.GetWinningPlayer(); if (sWinner == "X") { cout << sPlayer1 << " wins!!!!" << endl; } else if (sWinner == "O") { cout << sPlayer2 << " wins!!!!" << endl; } else if (sWinner == "Draw") { cout << "It's a draw!!!!" << endl; } cout << endl; cout << "Would you like to play again? "; string sAnswer = ""; cin >> sAnswer; const int length = sAnswer.length(); for (int i = 0; i!=length; ++i) { sAnswer[i] = std::tolower(sAnswer[i]); } if ((sAnswer == "yes") || (sAnswer == "y")) { bPlayAgain = true; mainBoard.ResetBoard(); sCurrentPlayer = sPlayer1; mainBoard.PrintBoard(); } else { bPlayAgain = false; } } return 0; } void PrintError(int error) { using std::cout; using std::endl; switch (error) { case 0: { return; } case 1: { cout << "That spot is taken. Try again." << endl; return; } case 2: { cout << "You need to enter a number between 1 and 9. Try again." << endl; return; } default: { cout << "Unknown Error. Please restart game." << endl; return; } } }