Question: Tic-Tac-Toe (C++) Write a program that allows two players (player X and player O) to play a game of tic-tac-toe. Use a two- dimensional char

Tic-Tac-Toe (C++)

Write a program that allows two players (player X and player O) to play a game of tic-tac-toe. Use a two- dimensional char array with three rows and three columns as the game board. Each element of thearrayshould be initialized with an asterisk (*). The players take turns making moves and the programkeeps track of whose turn it is. Player X moves first. The program should run a loop that:

Displays the contents of the board array (see prompts and output , below).

Prompts and allows the player whose turn it is to select a location on the board for an X in the case of player X or an O in the case of player O. The program should ask the player to enter the row and column number. Valid row or column numbers are 1, 2, or 3.

The loop terminates when a player has won, or a tie has occurred. If a player has won, the programshoulddeclare that player the winner and end. If a tie has occurred, the program should say so and end. Player X (O) wins when there are three Xs (three Os) in a row on the game board. The Xs (Os) can appear in a row, in a column, or diagonally across the board. A tie occurs when all of the locations on the board are full, but there is no winner. Input Validation: The program should check the validity of the row and column numbers entered by the players. To be valid, the row and column number must refer to an unoccupied position in the game board. When an invalid entry is made, the program simply redisplays its most recent prompt and attempts to reread the value . Prompts And Output Labels: The board is displayed as a sequence of three rows, each with threecharacters . The characters are "X" or "O" or "." depending on whether player X or player O has chosen that position or whether the position is still unselected. Thus the following: . . X O . X . . . represents the board when it's O's turn and when X has moved twice (to row1/column3 and row2/column3) and O has moved once (to row2/column1). Players are prompted as "Player X, row and column:" or "Player O, row and column:". The game's end is announced either by "Player X wins", or "Player O wins" or "The cat wins" (in the case of no winner).

I already have a code, but I keep getting an error message, here is my code:

code:

#include using namespace std;

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

int checkwin(); void board();

int main() { int player = 1,i,choice;

char mark; do { board(); player=(player%2)?1:2;

cout << "Player " << player << ", enter a number: "; cin >> choice;

mark=(player == 1) ? 'X' : 'O';

if (choice == 1 && square[1] == '1')

square[1] = mark; else if (choice == 2 && square[2] == '2')

square[2] = mark; else if (choice == 3 && square[3] == '3')

square[3] = mark; else if (choice == 4 && square[4] == '4')

square[4] = mark; else if (choice == 5 && square[5] == '5')

square[5] = mark; else if (choice == 6 && square[6] == '6')

square[6] = mark; else if (choice == 7 && square[7] == '7')

square[7] = mark; else if (choice == 8 && square[8] == '8')

square[8] = mark; else if (choice == 9 && square[9] == '9')

square[9] = mark; else { cout<<"Invalid move ";

player--; cin.ignore(); cin.get(); } i=checkwin();

player++; }while(i==-1); board(); if(i==1)

cout<<"==>\aPlayer "<<--player<<" win "; else cout<<"==>\aGame draw";

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

/*********************************************

FUNCTION TO RETURN GAME STATUS 1 FOR GAME IS OVER WITH RESULT -1 FOR GAME IS IN PROGRESS O GAME IS OVER AND NO RESULT **********************************************/

int checkwin() { if (square[1] == square[2] && square[2] == square[3])

return 1; else if (square[4] == square[5] && square[5] == square[6])

return 1; else if (square[7] == square[8] && square[8] == square[9])

return 1; else if (square[1] == square[4] && square[4] == square[7])

return 1; else if (square[2] == square[5] && square[5] == square[8])

return 1; else if (square[3] == square[6] && square[6] == square[9])

return 1; else if (square[1] == square[5] && square[5] == square[9])

return 1; else if (square[3] == square[5] && square[5] == square[7])

return 1; else if (square[1] != '1' && square[2] != '2' && square[3] != '3' && square[4] != '4' && square[5] != '5' && square[6] != '6' && square[7] != '7' && square[8] != '8' && square[9] != '9')

return 0; else return -1; }

/******************************************************************* FUNCTION TO DRAW BOARD OF TIC TAC TOE WITH PLAYERS MARK ********************************************************************/

void board() { system("cls"); cout << " \tTic Tac Toe ";

cout << "Player 1 (X) - Player 2 (O)" << endl << endl; cout << endl;

cout << " | | " << endl; cout << " " << square[1] << " | " << square[2] << " | " << square[3] << endl;

cout << "_____|_____|_____" << endl; cout << " | | " << endl;

cout << " " << square[4] << " | " << square[5] << " | " << square[6] << endl;

cout << "_____|_____|_____" << endl; cout << " | | " << endl;

cout << " " << square[7] << " | " << square[8] << " | " << square[9] << endl;

cout << " | | " << endl << endl; }

/******************************************************************* END OF PROJECT ********************************************************************/

This is the error:

COMPILER ERROR MESSAGES

ETest.cpp: In function void board(): ETest.cpp:126:16: error: system was not declared in this scope system("cls"); ^ 

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!