Code:
#include<iostream>
#include<stdio.h>
#include<string>
#include<stdlib.h>
using namespace std;
//---------------------------------------------------------------------Global Scope-------------------------------------------------------------------
char board[3][3] = {{'1','2','3'},{'4','5','6'},{'7','8','9'}};
char board2[3][3] = {{'1','2','3'},{'4','5','6'},{'7','8','9'}};
char board3[3][3] = {{'1','2','3'},{'4','5','6'},{'7','8','9'}};
char user = 'O';
int d;
void DisplayBoard()
{
printf("\nBoard 1\n");
for (int a = 0; a < 3; a++)
{
for (int b = 0; b < 3; b++)
{
cout << board[a][b] << " ";
}
cout << endl;
}
printf ("\nBaord 2\n");
for (int f = 0; f < 3; f++)
{
for (int g = 0; g < 3; g++)
{
cout << board2[f][g] << " ";
}
cout << endl;
}
printf ("\nBoard 3\n");
for (int h = 0; h < 3; h++)
{
for (int j = 0; j < 3; j++)
{
cout << board3[h][j] << " ";
}
cout << endl;
}
}
//-----------------------------------------------------------------------CLASS----------------------------------------------------------------------------------
class Game{
public:
//Class Funtion 1:
void BoardDisplay()
{
printf("\nBoard 1\n");
for (int a = 0; a < 3; a++)
{
for (int b = 0; b < 3; b++)
{
cout << board[a][b] << " ";
}
cout << endl;
}
printf ("\nBaord 2\n");
for (int f = 0; f < 3; f++)
{
for (int g = 0; g < 3; g++)
{
cout << board2[f][g] << " ";
}
cout << endl;
}
printf ("\nBoard 3\n");
for (int h = 0; h < 3; h++)
{
for (int j = 0; j < 3; j++)
{
cout << board3[h][j] << " ";
}
cout << endl;
}
}
//Class Funtion 2:
void user_input()
{
int c = (rand () % 27) + 1;
cout << "\nIt's\t " << user << "\tTurn! Please Choose A Space: \n";
if (c == 0)
{
cout << "This Is Not A Valid Input!" << endl;
user_input();
}
if (c == 1)
{
if (board[0][0] == '1'){
board[0][0] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 2)
{
if (board[0][1] == '2'){
board[0][1] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 3)
{
if (board[0][2] == '3'){
board[0][2] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 4)
{
if (board[1][0] == '4'){
board[1][0] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 5)
{
if (board[1][1] == '5'){
board[1][1] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 6)
{
if (board[1][2] == '6'){
board[1][2] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 7)
{
if (board[2][0] == '7'){
board[2][0] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 8)
{
if (board[2][1] == '8'){
board[2][1] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 9)
{
if (board[2][2] == '9'){
board[2][2] = user;
printf ("\n%c chose Board 1 Space %d\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
//BOARD TWO
else if (c == 10)
{
if (board2[0][0] == '1'){
board2[0][0] = user;
printf ("\n%c chose Board 2 Space 1\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 11)
{
if (board2[0][1] == '2'){
board2[0][1] = user;
printf ("\n%c chose Board 2 Space 2\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 12)
{
if (board2[0][2] == '3'){
board2[0][2] = user;
printf ("\n%c chose Board2 Space 3\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 13)
{
if (board2[1][0] == '4'){
board2[1][0] = user;
printf ("\n%c chose Board 2 Space 4\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 14)
{
if (board2[1][1] == '5'){
board2[1][1] = user;
printf ("\n%c chose Board 2 Space 5\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 15)
{
if (board2[1][2] == '6'){
board2[1][2] = user;
printf ("\n%c chose Board 2 Space 6\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 16)
{
if (board2[2][0] == '7'){
board2[2][0] = user;
printf ("\n%c chose Board 2 Space 7\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 17)
{
if (board2[2][1] == '8'){
board2[2][1] = user;
printf ("\n%c chose Board 2 Space 8\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 18)
{
if (board2[2][2] == '9'){
board2[2][2] = user;
printf ("\n%c chose Board 2 Space 9\n", user, c);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
//BOARD THREE
else if (c == 19)
{
if (board3[0][0] == '1'){
board3[0][0] = user;
printf ("\n%c chose Board 3 Space 1\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 20)
{
if (board3[0][1] == '2'){
board3[0][1] = user;
printf ("\n%c chose Board 3 Space 2\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 21)
{
if (board3[0][2] == '3'){
board3[0][2] = user;
printf ("\n%c chose Board 3 Space 3\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 22)
{
if (board3[1][0] == '4'){
board3[1][0] = user;
printf ("\n%c chose Board 3 Space 4\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 23)
{
if (board3[1][1] == '5'){
board3[1][1] = user;
printf ("\n%c chose Board 3 Space 5\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 24)
{
if (board3[1][2] == '6'){
board3[1][2] = user;
printf ("\n%c chose Board 3 Space 6\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 25)
{
if (board3[2][0] == '7'){
board3[2][0] = user;
printf ("\n%c chose Board 3 Space 7\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 26)
{
if (board3[2][1] == '8'){
board3[2][1] = user;
printf ("\n%c chose Board 3 Space 8\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
else if (c == 27)
{
if (board3[2][2] == '9'){
board3[2][2] = user;
printf ("\n%c chose Board 3 Space 9\n", user);
}
else
{
cout << "This Spot Is Already Taken" << endl;
user_input();
}
}
}
//------------------------------------------------------------------------------------
void switch_user()
{
int rand(user);
if (user =='O')
user = 'X';
else
user = 'O';
}
//-------------------------------------------------------------------------------------
char checkWin()
{
//BOARD ONE
//Player X:
if (board[0][0] == 'X' && board[0][1] == 'X' && board[0][2] == 'X') //Row 1
return 'X';
else if (board[1][0] == 'X' && board[1][1] == 'X' && board[1][2] == 'X') //Row 2
return 'X';
else if (board[2][0] == 'X' && board[2][1] == 'X' && board[2][2] == 'X') //Row 3
return 'X';
else if (board[0][0] == 'X' && board[1][0] == 'X' && board[2][0] == 'X') //Column 1
return 'X';
else if (board[0][1] == 'X' && board[1][1] == 'X' && board[2][1] == 'X') //Column 2
return 'X';
else if (board[0][2] == 'X' && board[1][2] == 'X' && board[2][2] == 'X') //Column 3
return 'X';
else if (board[0][0] == 'X' && board[1][1] == 'X' && board[2][2] == 'X') //Diagonal Top Left to Bottom Right
return 'X';
else if (board[2][0] == 'X' && board[1][1] == 'X' && board[0][2] == 'X') //Diagnoal Bottom Left to Top Right
return 'X';
//Player O:
else if (board[0][0] == 'O' && board[0][1] == 'O' && board[0][2] == 'O') //Row 1
return 'O';
else if (board[1][0] == 'O' && board[1][1] == 'O' && board[1][2] == 'O') //Row 2
return 'O';
else if (board[2][0] == 'O' && board[2][1] == 'O' && board[2][2] == 'O') //Row 3
return 'O';
else if (board[0][0] == 'O' && board[1][0] == 'O' && board[2][0] == 'O') //Column 1
return 'O';
else if (board[0][1] == 'O' && board[1][1] == 'O' && board[2][1] == 'O') //Column 2
return 'O';
else if (board[0][2] == 'O' && board[1][2] == 'O' && board[2][2] == 'O') //Column 3
return 'O';
else if (board[0][0] == 'O' && board[1][1] == 'O' && board[2][2] == 'O') //Diagonal Top Left to Bottom Right
return 'O';
else if (board[2][0] == 'O' && board[1][1] == 'O' && board[0][2] == 'O') //Diagnoal Bottom Left to Top Right
return 'O';
//BOARD TWO
//Player X:
if (board2[0][0] == 'X' && board2[0][1] == 'X' && board2[0][2] == 'X') //Row 1
return 'X';
else if (board2[1][0] == 'X' && board2[1][1] == 'X' && board2[1][2] == 'X') //Row 2
return 'X';
else if (board2[2][0] == 'X' && board2[2][1] == 'X' && board2[2][2] == 'X') //Row 3
return 'X';
else if (board2[0][0] == 'X' && board2[1][0] == 'X' && board2[2][0] == 'X') //Column 1
return 'X';
else if (board2[0][1] == 'X' && board2[1][1] == 'X' && board2[2][1] == 'X') //Column 2
return 'X';
else if (board2[0][2] == 'X' && board2[1][2] == 'X' && board2[2][2] == 'X') //Column 3
return 'X';
else if (board2[0][0] == 'X' && board2[1][1] == 'X' && board2[2][2] == 'X') //Diagonal Top Left to Bottom Right
return 'X';
else if (board2[2][0] == 'X' && board2[1][1] == 'X' && board2[0][2] == 'X') //Diagnoal Bottom Left to Top Right
return 'X';
//Player O:
else if (board2[0][0] == 'O' && board2[0][1] == 'O' && board2[0][2] == 'O') //Row 1
return 'O';
else if (board2[1][0] == 'O' && board2[1][1] == 'O' && board2[1][2] == 'O') //Row 2
return 'O';
else if (board2[2][0] == 'O' && board2[2][1] == 'O' && board2[2][2] == 'O') //Row 3
return 'O';
else if (board2[0][0] == 'O' && board2[1][0] == 'O' && board2[2][0] == 'O') //Column 1
return 'O';
else if (board2[0][1] == 'O' && board2[1][1] == 'O' && board2[2][1] == 'O') //Column 2
return 'O';
else if (board2[0][2] == 'O' && board2[1][2] == 'O' && board2[2][2] == 'O') //Column 3
return 'O';
else if (board2[0][0] == 'O' && board2[1][1] == 'O' && board2[2][2] == 'O') //Diagonal Top Left to Bottom Right
return 'O';
else if (board2[2][0] == 'O' && board2[1][1] == 'O' && board2[0][2] == 'O') //Diagnoal Bottom Left to Top Right
return 'O';
//BOARD THREE
//Player X:
if (board3[0][0] == 'X' && board3[0][1] == 'X' && board3[0][2] == 'X') //Row 1
return 'X';
else if (board3[1][0] == 'X' && board3[1][1] == 'X' && board3[1][2] == 'X') //Row 2
return 'X';
else if (board3[2][0] == 'X' && board3[2][1] == 'X' && board3[2][2] == 'X') //Row 3
return 'X';
else if (board3[0][0] == 'X' && board3[1][0] == 'X' && board3[2][0] == 'X') //Column 1
return 'X';
else if (board3[0][1] == 'X' && board3[1][1] == 'X' && board3[2][1] == 'X') //Column 2
return 'X';
else if (board3[0][2] == 'X' && board3[1][2] == 'X' && board3[2][2] == 'X') //Column 3
return 'X';
else if (board3[0][0] == 'X' && board3[1][1] == 'X' && board3[2][2] == 'X') //Diagonal Top Left to Bottom Right
return 'X';
else if (board3[2][0] == 'X' && board3[1][1] == 'X' && board3[0][2] == 'X') //Diagnoal Bottom Left to Top Right
return 'X';
//Player O:
else if (board3[0][0] == 'O' && board3[0][1] == 'O' && board3[0][2] == 'O') //Row 1
return 'O';
else if (board3[1][0] == 'O' && board3[1][1] == 'O' && board3[1][2] == 'O') //Row 2
return 'O';
else if (board3[2][0] == 'O' && board3[2][1] == 'O' && board3[2][2] == 'O') //Row 3
return 'O';
else if (board3[0][0] == 'O' && board3[1][0] == 'O' && board3[2][0] == 'O') //Column 1
return 'O';
else if (board3[0][1] == 'O' && board3[1][1] == 'O' && board3[2][1] == 'O') //Column 2
return 'O';
else if (board3[0][2] == 'O' && board3[1][2] == 'O' && board3[2][2] == 'O') //Column 3
return 'O';
else if (board3[0][0] == 'O' && board3[1][1] == 'O' && board3[2][2] == 'O') //Diagonal Top Left to Bottom Right
return 'O';
else if (board3[2][0] == 'O' && board3[1][1] == 'O' && board3[0][2] == 'O') //Diagnoal Bottom Left to Top Right
return 'O';
//RAW BOARD
//Player X
if (board[0][0] == 'X' && board2[0][0] == 'X' && board3[0][0] == 'X') //Raw 1
return 'X';
else if (board[0][1] == 'X' && board2[0][1] == 'X' && board3[0][1] == 'X') //Raw 2
return 'X';
else if (board[0][2] == 'X' && board2[0][2] == 'X' && board3[0][2] == 'X') //Raw 3
return 'X';
else if (board[1][0] == 'X' && board2[1][0] == 'X' && board3[1][0] == 'X') //Raw 4
return 'X';
else if (board[1][1] == 'X' && board2[1][1] == 'X' && board3[1][1] == 'X') //Raw 5
return 'X';
else if (board[1][2] == 'X' && board2[1][2] == 'X' && board3[1][2] == 'X') //Raw 6
return 'X';
else if (board[2][0] == 'X' && board2[2][0] == 'X' && board3[2][0] == 'X') //Raw 7
return 'X';
else if (board[2][1] == 'X' && board2[2][1] == 'X' && board3[2][1] == 'X') //Raw 8
return 'X';
else if (board[2][2] == 'X' && board2[2][2] == 'X' && board3[2][2] == 'X') //Raw 9
return 'X';
//Player O
if (board[0][0] == 'O' && board2[0][0] == 'O' && board3[0][0] == 'O') //Raw 1
return 'O';
else if (board[0][1] == 'O' && board2[0][1] == 'O' && board3[0][1] == 'O') //Raw 2
return 'O';
else if (board[0][2] == 'O' && board2[0][2] == 'O' && board3[0][2] == 'O') //Raw 3
return 'O';
else if (board[1][0] == 'O' && board2[1][0] == 'O' && board3[1][0] == 'O') //Raw 4
return 'O';
else if (board[1][1] == 'O' && board2[1][1] == 'O' && board3[1][1] == 'O') //Raw 5
return 'O';
else if (board[1][2] == 'O' && board2[1][2] == 'O' && board3[1][2] == 'O') //Raw 6
return 'O';
else if (board[2][0] == 'O' && board2[2][0] == 'O' && board3[2][0] == 'O') //Raw 7
return 'O';
else if (board[2][1] == 'O' && board2[2][1] == 'O' && board3[2][1] == 'O') //Raw 8
return 'O';
else if (board[2][2] == 'O' && board2[2][2] == 'O' && board3[2][2] == 'O') //Raw 9
return 'O';
}
Game ()
{
d = 0;
while (1)
{
d++;
user_input();
BoardDisplay();
system ("PAUSE");
if (checkWin() == 'O')
{
cout << "O Wins!" << endl;
break;
}
else if (checkWin() == 'X')
{
cout << "X Wins!" << endl;
break;
}
else if (checkWin() == '/' && d == 9)
{
cout<< "It's A Tie!" << endl;
break;
}
system ("CLS");
switch_user();
}
}
};
//-------------------------------------------------------------------------------BEGIN MAIN---------------------------------------------------------
int main()
{
cout << "\n\tWelcome To Tic Tac Toe!\n" << endl;
DisplayBoard();
int i = 0;
Game obj;
while(i<10){
ClearBoard();
Game game;
i++;
}
return 0;
}