Question: In C++ Listed below is code to play a guessing game in which two players attempt to guess a number. Your task is to extend
In C++
Listed below is code to play a guessing game in which two players attempt to guess a number. Your task is to extend the program with objects that represent either a human player or a computer player.
bool checkForWin(int guess, int answer) { if (answer == guess) { cout << "You're right! You win!" << endl; return true; } else if (answer < guess) cout << "Your guess is too high." << endl; else cout << "Your guess is too low." << endl; return false; } void play(Player &player1, Player &player2) { int answer = 0, guess = 0; answer = rand() % 100; bool win = false; while (!win) { cout << "Player 1's turn to guess." << endl; guess = player1.getGuess(); win = checkForWin(guess, answer); if (win) return; cout << "Player 2's turn to guess." << endl; guess = player2.getGuess(); win = checkForWin(guess, answer); } } The play function takes as input two Player objects. Define the Player class with a virtual function named getGuess(). The implementation of Player::getGuess() can simply return 0. Next, define a class named HumanPlayer derived from Player. The implementation of HumanPlayer::getGuess() should prompt the user to enter a number and return the value entered from the keyboard. Next, define a class named ComputerPlayer derived from Player. The implementation of ComputerPlayer::getGuess() should randomly select a number from 0 to 100. Finally, construct a main function that invokes play(Player &player1, Player &player2) with two instances of a HumanPlayer (human vs. human), an instance of a HumanPlayer and ComputerPlayer (human vs. computer), and two instances of ComputerPlayer (computer vs. computer). Your main function will be similar to
int main() { HumanPlayer humanPlayer1; HumanPlayer humanPlayer2; ComputerPlayer computerPlayer1; ComputerPlayer computerPlayer2; cout << "Human vs Human "; play(humanPlayer1, humanPlayer2); cout << "Human vs Computer "; play(humanPlayer1, computerPlayer1); cout << "Computer vs Computer "; play(computerPlayer1, computerPlayer2); return 0; } Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
