Please help me Tic Tac Toe pro

the my program can work result not correct. i think some wrong about displayBoard(gameBoard). please help me solve it. Thank you so much. THIS IS MY CODE
#include<iostream>
using namespace std;

const int row = 3;
const int colm = 3;
const char X = 'X';
const char O = 'O';
int inputCount = 0;
bool taken[9] = {false, false, false, false, false, false, false, false, false};
void displayBroad(char gameBoard[][colm]);
void playerTurn_X(char gameBoard[][colm], int);
void playerTurn_O(char gameBoard[][colm], int);
bool gameOver_X(char gameBoard[][colm], int);
bool gameOver_O(char gameBoard[][colm], int);



int main()
{

char gameBoard[row][colm] = {{1,2,3},{4,5,6},{7,8,9}};

cout << "WELCOM TO TIC-TAC-TOE GAME" << endl;
displayBroad(gameBoard);

cout << "Beginning Board"<<endl;

while(true){

if(!gameOver_O(gameBoard, row) && inputCount < row * colm)
playerTurn_X(gameBoard, row);

else if(!gameOver_X(gameBoard, row) && inputCount < row * colm)
playerTurn_O(gameBoard, row);

}

if(gameOver_X(gameBoard, row))
cout << "Player X wins" <<endl;
else if(gameOver_O(gameBoard, row))
cout << "Player O wins" <<endl;
else cout << "Neither player won!" << endl;

cin.ignore();
cin.get();
return 0;
}

void displayBroad(char gameBoard[][colm])
{
for(int i=0; i < row; i++)
{
for(int j=0; j<colm; j++)
{
gameBoard[i][j] ;
cout << gameBoard[i][j];
cout << " ";
}
cout << endl;

}
}

void playerTurn_X(char gameBoard[][colm], int row)
{
int move;
displayBroad(gameBoard);

bool validMove;

do{
validMove = true;
cout << "Player X, please make your move (1-9): ";
cin >> move;

validMove = (move > 0 && move < 10);

if(!validMove){
cout << "Your pick was not in the range 1 - 9 please start over " << endl;
}else if(taken[move - 1] == true){
validMove = false;
cout << "Position " << move << " is already taken. Please try another position." << endl;
}else{
inputCount++;
taken[move - 1] = true;
}

}while(!validMove);

gameBoard[(move-1)/3][(move-1)%3] = 'X';
}

void playerTurn_O(char gameBoard[][colm], int row)
{
int move;
displayBroad(gameBoard);
bool validMove;

do{
validMove = true;
cout << "Player O, please make your move (1-9): ";
cin >> move;

validMove = (move > 0 && move < 10);

if(!validMove){
cout << "Your pick was not in the range 1 - 9 please start over " << endl;
}else if(taken[move - 1] == true){
validMove = false;
cout << "Position " << move << " is already taken. Please try another position." << endl;
}else{
inputCount++;
taken[move - 1] = true;
}

}while(!validMove);

gameBoard[(move-1)/3][(move-1)%3] = 'O';
}

bool gameOver_X(char gameBoard[][colm], int row)
{
bool winner;

if(gameBoard[0][0] == 'X' && gameBoard[0][0] == gameBoard[0][1] && gameBoard[0][2] == gameBoard[0][1])
winner = true;
else if(gameBoard[1][0] == 'X' && gameBoard[1][0] == gameBoard[1][1] && gameBoard[1][2] == gameBoard[1][1])
winner = true;
else if(gameBoard[2][0] == 'X' && gameBoard[2][0] == gameBoard[2][1] && gameBoard[2][2] == gameBoard[2][1])
winner = true;
else if(gameBoard[0][0] == 'X' && gameBoard[0][0] == gameBoard[1][0] && gameBoard[2][0] == gameBoard[1][0])
winner = true;
else if(gameBoard[0][1] == 'X' && gameBoard[0][1] == gameBoard[1][1] && gameBoard[2][1] == gameBoard[1][1])
winner = true;
else if(gameBoard[0][2] == 'X' && gameBoard[0][2] == gameBoard[1][2] && gameBoard[2][2] == gameBoard[1][2])
winner = true;
else if(gameBoard[0][0] == 'X' && gameBoard[0][0] == gameBoard[1][1] && gameBoard[2][2] == gameBoard[1][1])
winner = true;
else if(gameBoard[2][0] == 'X' && gameBoard[2][0] == gameBoard[1][1] && gameBoard[0][2] == gameBoard[1][1])
winner = true;
else
winner = false;

return winner;
}

bool gameOver_O(char gameBoard[][colm], int row)
{
bool winner;

if(gameBoard[0][0] == 'O' && gameBoard[0][0] == gameBoard[0][1] && gameBoard[0][2] == gameBoard[0][1])
winner = true;
else if(gameBoard[1][0] == 'O' && gameBoard[1][0] == gameBoard[1][1] && gameBoard[1][2] == gameBoard[1][1])
winner = true;
else if(gameBoard[2][0] == 'O' && gameBoard[2][0] == gameBoard[2][1] && gameBoard[2][2] == gameBoard[2][1])
winner = true;
else if(gameBoard[0][0] == 'O' && gameBoard[0][0] == gameBoard[1][0] && gameBoard[2][0] == gameBoard[1][0])
winner = true;
else if(gameBoard[0][1] == 'O' && gameBoard[0][1] == gameBoard[1][1] && gameBoard[2][1] == gameBoard[1][1])
winner = true;
else if(gameBoard[0][2] == 'O' && gameBoard[0][2] == gameBoard[1][2] && gameBoard[2][2] == gameBoard[1][2])
winner = true;
else if(gameBoard[0][0] == 'O' && gameBoard[0][0] == gameBoard[1][1] && gameBoard[2][2] == gameBoard[1][1])
winner = true;
else if(gameBoard[2][0] == 'O' && gameBoard[2][0] == gameBoard[1][1] && gameBoard[0][2] == gameBoard[1][1])
winner = true;
else
winner = false;

return winner;
}
Last edited on
Topic archived. No new replies allowed.