Question: How to understand this C++ code ? (it's a tic tac toe game ) #include using namespace std; char matrix[3][3] = { '1', '2', '3',

How to understand this C++ code ? (it's a tic tac toe game )

#include

using namespace std;

char matrix[3][3] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };

char player = 'X';

void Draw()

{

system("cls");

cout << "Tic Tac Toe v1.0" << endl;

for (int i = 0; i < 3; i++)

{

for (int j = 0; j < 3; j++)

{

cout << matrix[i][j] << " ";

}

cout << endl;

}

}

void Input()

{

int a;

cout << "Press the number of the field: ";

cin >> a;

if (a == 1)

matrix[0][0] = player;

else if (a == 2)

matrix[0][1] = player;

else if (a == 3)

matrix[0][2] = player;

else if (a == 4)

matrix[1][0] = player;

else if (a == 5)

matrix[1][1] = player;

else if (a == 6)

matrix[1][2] = player;

else if (a == 7)

matrix[2][0] = player;

else if (a == 8)

matrix[2][1] = player;

else if (a == 9)

matrix[2][2] = player;

}

void TogglePlayer()

{

if (player == 'X')

player = 'O';

else

player = 'X';

}

char Win()

{

//first player

if (matrix[0][0] == 'X' && matrix[0][1] == 'X' && matrix[0][2] == 'X')

return 'X';

if (matrix[1][0] == 'X' && matrix[1][1] == 'X' && matrix[1][2] == 'X')

return 'X';

if (matrix[2][0] == 'X' && matrix[2][1] == 'X' && matrix[2][2] == 'X')

return 'X';

if (matrix[0][0] == 'X' && matrix[1][0] == 'X' && matrix[2][0] == 'X')

return 'X';

if (matrix[0][1] == 'X' && matrix[1][1] == 'X' && matrix[2][1] == 'X')

return 'X';

if (matrix[0][2] == 'X' && matrix[1][2] == 'X' && matrix[2][2] == 'X')

return 'X';

if (matrix[0][0] == 'X' && matrix[1][1] == 'X' && matrix[2][2] == 'X')

return 'X';

if (matrix[2][0] == 'X' && matrix[1][1] == 'X' && matrix[0][2] == 'X')

return 'X';

//second player

if (matrix[0][0] == 'O' && matrix[0][1] == 'O' && matrix[0][2] == 'O')

return 'O';

if (matrix[1][0] == 'O' && matrix[1][1] == 'O' && matrix[1][2] == 'O')

return 'O';

if (matrix[2][0] == 'O' && matrix[2][1] == 'O' && matrix[2][2] == 'O')

return 'O';

if (matrix[0][0] == 'O' && matrix[1][0] == 'O' && matrix[2][0] == 'O')

return 'O';

if (matrix[0][1] == 'O' && matrix[1][1] == 'O' && matrix[2][1] == 'O')

return 'O';

if (matrix[0][2] == 'O' && matrix[1][2] == 'O' && matrix[2][2] == 'O')

return 'O';

if (matrix[0][0] == 'O' && matrix[1][1] == 'O' && matrix[2][2] == 'O')

return 'O';

if (matrix[2][0] == 'O' && matrix[1][1] == 'O' && matrix[0][2] == 'O')

return 'O';

return '/';

}

int main()

{

Draw();

while (1)

{

Input();

Draw();

if (Win() == 'X')

{

cout << "X wins!" << endl;

break;

}

else if (Win() == 'O')

{

cout << "O wins!" << endl;

break;

}

TogglePlayer();

}

system("pause");

return 0;

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!