Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "main.h"
- #include <cctype>
- 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;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement