Question: DESCRIPTION Create a program using a two dimension array and functions that lets two players play the tic-tac-toe game. The program is to read a
DESCRIPTION Create a program using a two dimension array and functions that lets two players play the tic-tac-toe game. The program is to read a number from 1 to 9 from the keyboard alternating between the X and the O. Ask which square the X player wants, and then ask which square the O player wants. Continue until the game is won by either player, or all the squares have been filled. (Called a Cat's Game or a Tie Game)
A function must be used to display the tic-tac-toe game board, and a function must be used that determines if the game has been won. You can create the program on your own, or start with the sample code provided.
EXTRA CREDIT (3 points) Modify the DisplayTicTacToe( ) function using the | and characters to draw lines for the tic-tac-toe display.
This a part of the code, if you can find whats missing it would be awesome thank you.
// Program Name: TicTacToe.cpp // Programmer: Dan McElroy // Class: CIS054 C/C++ Programming // Date: March 16, 2014 // Version: 1.0 #include "stdafx.h" // Only for Microsoft Visual C++ #include// needed for cin and cout #include // needed by srand() and srand() #include // needed for the time() function using namespace std; // function prototypes void DisplayTicTacToe(char board[3][3]); char CheckForWinningGame(char board[3][3]); int main(int argc, char* argv[]) { char board[3][3] = { // index for positions in the array {'1', '2', '3'}, // [0][0] [0][1] [0][2] {'4', '5', '6'}, // [1][0] [1][1] [1][2] {'7', '8', '9'} // [2][0] [2][1] [2][2] }; int squareCounter = 0; // count how many squares are used char gameWinner = '-'; // winner of the game ('X' or 'O') char inputCharacter; // input from the user (should be '1' to '9') int choice; // input converted to integer 0 to 8 (start from 0) char player; // current player, set to either an 'X' or an 'O' // select the starting player srand( (unsigned int)time(NULL)); // seed the random number generator if ( rand() % 2 == 1) player = 'X'; else player = 'O'; // starting instructions cout << "Enter a 1 though 9 to select a square." << endl; // Ask for a 1-9 until all squares are filled or the game has been won while (squareCounter < 9 && gameWinner != 'X' && gameWinner != 'O') { DisplayTicTacToe(board); cout << "Player " << player << ", enter a number (1-9): "; cin >> inputCharacter; // Arrays start counting from index 0 // convert inputCharacter from ASCII ('1' to '9') to integer (0 to 8) // to select the row and column index for the 3x3 array choice = inputCharacter - '1'; // now the inputs are 0,1,2,3,4,5,6,7,8 int row = choice / 3; // row will be 0 (for 0,1,2), 1 (for 3,4,5), 2 for (6,7,8) int col = choice % 3; // col will be 0 (for 0,3,6), 1 (for 1,4,7), 2 for (2,5,8) if (choice < 0 || choice > 8) // see if the input is below 1 or greater than 0 cout << "Illegal value, try again" << endl; else if (board[row][col]=='X' || board[row][col]=='O') cout << "This space has already been used, try again" << endl; else { board[row][col] = player; // put in an 'X' or an 'O' squareCounter++; // count the number of squares completed // select the next player if (player=='X') player = 'O'; // switch from 'X' to 'O' for next move else player = 'X'; // switch from 'O' to 'X' for next move } gameWinner = CheckForWinningGame(board); // returns 'X' or 'O' if the game is won } if (squareCounter == 9) { DisplayTicTacToe(board); cout << endl << "Tie Game" << endl << endl; } else if (gameWinner =='X' || gameWinner == 'O') { DisplayTicTacToe(board); cout << endl << "Player " << gameWinner << " wins the game" << endl << endl; } return 0; } // ------ Display the Tic Tac Toe board void DisplayTicTacToe(char board[3][3]) { cout << endl; for (int row=0; row<3; row++) // display three rows { for (int col=0; col<3; col++) // display three columns each row cout << board[row][col] << ' '; cout << endl; // end of row } cout << "--------------------------------" << endl << endl;; } // ------ Check all eight possible combinations for a win. // returns the player ('X' or 'O') if the game has been won // returns '-' if there is currently no winner char CheckForWinningGame(char board[3][3]) { char player; // check going across the top row to see if all squares are the same player = board[0][0]; if (board[0][1] == player && board[0][2] == player) return player; // check going across the middle row to see if all squares are the same // check going across the bottom row to see if all squares are the same // check going down the first column to see if all squares are the same // check going down the second column to see if all squares are the same // check going down the third column to see if all squares are the same // check going across the left diagonal \ to see if all squares are the same // check going across the right diagonal / to see if all squares are the same return '-'; // if there is no winner }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
