Tic Tac Toe Program Question
I'll start by saying that I don't know much about programming... but I was trying to make a program that would let two users play a game of tic tac toe... I apparently have a lot of debugging to do and I have no idea at all where to start... at the end of this message is my source code.. if anyone could debug it for me.. or help me to debug it.. that would be spectacular :)
Code:
#include <iostream>
using namespace std;
int gameStatus()
{
// To check if player one has won
if (gameboard[0][0] == 'X' && gameboard[0][1] == 'X' && gameboard[0][2] == 'X' ||
gameboard[1][0] == 'X' && gameboard[1][1] == 'X' && gameboard[1][2] == 'X' ||
gameboard[2][0] == 'X' && gameboard[2][1] == 'X' && gameboard[2][2] == 'X' ||
gameboard[0][0] == 'X' && gameboard[1][0] == 'X' && gameboard[2][0] == 'X' ||
gameboard[0][1] == 'X' && gameboard[1][1] == 'X' && gameboard[2][1] == 'X' ||
gameboard[0][2] == 'X' && gameboard[1][2] == 'X' && gameboard[2][2] == 'X' ||
gameboard[0][0] == 'X' && gameboard[1][1] == 'X' && gameboard[2][2] == 'X' ||
gameboard[0][2] == 'X' && gameboard[1][1] == 'X' && gameboard[2][0] == 'X')
return 1;
// To check if player two has won
else if (gameboard[0][0] == 'O' && gameboard[0][1] == 'O' && gameboard[0][2] == 'O' ||
gameboard[1][0] == 'O' && gameboard[1][1] == 'O' && gameboard[1][2] == 'O' ||
gameboard[2][0] == 'O' && gameboard[2][1] == 'O' && gameboard[2][2] == 'O' ||
gameboard[0][0] == 'O' && gameboard[1][0] == 'O' && gameboard[2][0] == 'O' ||
gameboard[0][1] == 'O' && gameboard[1][1] == 'O' && gameboard[2][1] == 'O' ||
gameboard[0][2] == 'O' && gameboard[1][2] == 'O' && gameboard[2][2] == 'O' ||
gameboard[0][0] == 'O' && gameboard[1][1] == 'O' && gameboard[2][2] == 'O' ||
gameboard[0][2] == 'O' && gameboard[1][1] == 'O' && gameboard[2][0] == 'O')
return 2;
// To check for a tie
else if (gameboard[0][0] != ' ' && gameboard[0][1] != ' ' && gameboard[0][2] != ' ' &&
gameboard[1][0] != ' ' && gameboard[1][1] != ' ' && gameboard[1][2] != ' ' &&
gameboard[2][0] != ' ' && gameboard[2][1] != ' ' && gameboard[2][2] != ' ')
return 0;
// Otherwise continue..
else
return 3;
}
void displayBoard()
{
// Used to display the gameboard
cout << gameboard[0][0] << "|" << gameboard[0][1] << "|" << gameboard[0][2] << "---------";
cout << gameboard[1][0] << "|" << gameboard[1][1] << "|" << gameboard[1][2] << "---------";
cout << gameboard[2][0] << "|" << gameboard[2][1] << "|" << gameboard[2][2];
}
int main()
{
int x=0, y=0, n;
char name1[15], name2[15];
char gameboard[3][3] = {" ", " ", " ", " ", " ", " ", " ", " ", " "};
//Welcome and initialize everything
cout << "Welcome to this game of Tic Tac Toe" << "\n";
cout << "First player, enter your name:" << "\n";
cin >> name1;
cout << "Second player, enter your name:" << "\n";
cin >> name2;
cout << "__|__|__" << "\n" << "__|__|__" << "\n" << " | | " << "\n";
cout << "You make a move by entering first the row number and then the column number\n";
//Start game
for (n = 0, n < 9, n++)
{
// This if statement is for player one's moves
if (n / 2 % 1)
{
cout << name1 << ", make your move: ";
cin >> x;
cin >> y;
while (gameboard[x - 1][y - 1] != " ")
{
cout << "\n" << "Illegal move, make another move:"
cin >> x;
cin >> y;
}
gameboard[x][y] = "X";
displayBoard();
if (gameStatus() == 1)
{
cout << name1 << " has won!";
exit(1);
}
else if (gameStatus() == 2)
{
cout << name2 << " has won!";
exit(1);
}
else if (gameStatus() == 0)
{
cout << "Game tied";
exit(1);
}
else
break;
}
//This if statement is for player two's moves
if (n / 2 % 0)
{
cout << name2 << ", make your move: ";
cin >> x;
cin >> y;
while (gameboard[x - 1][y - 1] != " ")
{
cout << "\n" << "Illegal move, make another move:"
cin >> x;
cin >> y;
}
gameboard[x][y] = "O";
displayBoard();
if (gameStatus() == 1)
{
cout << name1 << " has won!";
exit(1);
}
else if (gameStatus() == 2)
{
cout << name2 << " has won!";
exit(1);
}
else if (gameStatus() == 0)
{
cout << "Game tied";
exit(1);
}
else
break;
}
}
}
}