I am having trouble replacing the numbers on my Tic Tac board with the X and O from my if and else if statements. I would also like to know how to make sure how to keep the X and O in place without it being replaced after every loop. Thank You! Any hint will be appreciated.
/**
1. Implement displayBoard to display Tic Tac Toe board.
2. Prompt User for a box on the board to select, i.e. a number between 1 and 9 with 1 being the upper left corner.
use cin.get(box) to get the box number and isdigit to verify it is a
number;
1 | 2 | 3
4 | 5 | 6
7 | 8 | 9
If the box is available put the appropriate X or O in there and switch players, i.e. X becomes O and vice versa.
If the box is NOT available warn the user and get another box until they select a valid open box.
3. After all spots have been select Display "Game Over!";
4. Write a main function to use the TicTacToe class and test all of the above functionality.
**/
#include<iostream>
#include<limits>
using namespace std;
class TicTacToe {
public:
void displayBoard();
void getMove();
void playGame();
private:
char board[9];
char player; // Switch after each move.
};
int main ()
{
TicTacToe ttt;
for (int i = 0; i < 9; i++) {
ttt.playGame();
}
}
void TicTacToe::playGame()
{
displayBoard();
getMove();
// Your implementation here...
}
void TicTacToe::displayBoard()
{
// Your implementation here...
board[0] = '1';
board[1] = '2';
board[2] = '3';
board[3] = '4';
board[4] = '5';
board[5] = '6';
board[6] = '7';
board[7] = '8';
board[8] = '9';
for (int i = 0; i < 9; i++)
{
if ( (i+1) % 3 == 0 )
{
cout << board[i] << endl;
}
else
{
cout << board[i] << " | ";
}
}
}
void TicTacToe::getMove()
{
if (player == 'X'){
player = 'O';
}
else {
player = 'X';
}
cout << player << " ";
cout << "Enter Box: ";
char c;
bool move;
move = true;
cin.get(c);
cin.ignore(numeric_limits<int>::max(), '\n');
if (c > '9' || c < '0')
// error message
cout << "please enter a number 1-9" << endl;
int number = c - '0';
cout << "your number is " << number << endl;
// Your implementation here...
for (int i = 0; i < 9; i++) {
if (board[i] == 'X' || board[i] == 'O') {
cout << "Space has been taken" << endl;
}
}
if (c == '1' && board[0] == '1') {
board[0] = player;
}
else if(c == '2' && board[1] == '2')
{
board[1] = player;
}
else if(c == '3' && board[2] == '3')
{
board[2] = player;
}
else if(c == '4' && board[3] == '4')
{
board[3] = player;
}
else if(c == '5' && board[4] == '5')
{
board[4] = player;
}
else if(c == '6' && board[5] == '6')
{
board[5] = player;
}
else if(c == '7' && board[6] == '7')
{
board[6] = player;
}
else if(c == '8' && board[7] == '8')
{
board[7] = player;
}
else if(c == '9' && board[8] == '9')
{
board[8] = player;
}
}