Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Using the code below, fix or add the following four steps: 1. (bug) A tie game does NOT finish the game. Correct this. 2. (feature)

Using the code below, fix or add the following four steps:

1. (bug) A tie game does NOT finish the game. Correct this.

2. (feature) Transform the game from player vs. player (PvP) only to player vs. player and player vs. a machine (PvM). The user can have an option to select which type before a game starts. The machine runs at least as smart as a random function on picking the next move (i.e. random spot selection)

3. (feature) A game ends when the user enters quit or whoever wins three consecutive games. A user can select to play again, a new fresh start. Each time someone wins they recieve $100,000 The winner can cash a $300,000, for three consecutive wins, then stop, or continue and cash $600,000 at six consecutive wins, stop or continue to nine consecutive wins and cash $900,000, and win $1,000,000 at ten wins. Game will end at ten consecutive wins, no more.

4. (feature) Add wins and ties counters for each player (PvP or PvM).

-------tic-tac-toe.cpp----------------------------------------------------------------------------------------------

/** Kent State University CS 33901 Software Engineering Fall 2017 Project #1 Simple Tic Tac Toe tictactoe-v0.9.cpp Source: http://paste4btc.com/enVArEWu Author #1: NVitanovic, https://www.youtube.com/user/NVitanovic Author #2: Jacob Doss */ #include  using namespace std; char matrix[3][3] = { '1', '2', '3', '4', '5', '6', '7', '8', '9' }; char player = 'X'; char Win() { int x = 0; if(x == 0){ //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'; else x = 1; } if(x == 1){ return 'N'; } return '/'; } int main() { //Draw cout << string( 100, ' ' ); cout << "TicTacToe v0.9" << endl; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << matrix[i][j] << " "; } cout << endl; } while (1) { //Input int a; cout << "Press the number of the field: "; cin >> a; // if(a != 1 || a != 2|| a != 3|| a != 4|| a != 5|| a != 6|| a != 7|| a != 8|| a != 9){ //return 0; //} if (a == 1){ if(matrix[0][0] == 'X' || matrix[0][0] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[0][0] = player; if (player == 'X') player = 'O'; else player = 'X'; } } else if (a == 2) if(matrix[0][1] == 'X' || matrix[0][1] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[0][1] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 3) if(matrix[0][2] == 'X' || matrix[0][2] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[0][2] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 4) if(matrix[1][0] == 'X' || matrix[1][0] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[1][0] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 5) if(matrix[1][1] == 'X' || matrix[1][1] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[1][1] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 6) if(matrix[1][2] == 'X' || matrix[1][2] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[1][2] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 7) if(matrix[2][0] == 'X' || matrix[2][0] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[2][0] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 8) if(matrix[2][1] == 'X' || matrix[2][1] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[2][1] = player; if (player == 'X') player = 'O'; else player = 'X'; } else if (a == 9) if(matrix[2][2] == 'X' || matrix[2][2] == 'O'){ cout << "Cannot move there. Player already exists, choose again." << endl; if (player == 'X') player = 'X'; else player = 'O'; } else{ matrix[2][2] = player; if (player == 'X') player = 'O'; else player = 'X'; } //Draw cout << string( 100, ' ' ); cout << "tictactoe v0.9" << endl; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { cout << matrix[i][j] << " "; } cout << endl; } if (Win() == 'X') { cout << "X wins!" << endl; break; } else if (Win() == 'O') { cout << "O wins!" << endl; break; } else if(Win() == 'N'){ cout << "It was a tie!" << endl; break; } //TogglePlayer /* if (player == 'X') player = 'O'; else player = 'X'; */ } return 0; } 

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database And Expert Systems Applications 33rd International Conference Dexa 2022 Vienna Austria August 22 24 2022 Proceedings Part 1 Lncs 13426

Authors: Christine Strauss ,Alfredo Cuzzocrea ,Gabriele Kotsis ,A Min Tjoa ,Ismail Khalil

1st Edition

3031124227, 978-3031124228

More Books

Students also viewed these Databases questions

Question

Explain what it means for a function to be (1).

Answered: 1 week ago

Question

What are Electrophoresis?

Answered: 1 week ago

Question

2. Why has the conflict escalated?

Answered: 1 week ago