Answer: The c++ program for the number guessing game is given below.
#include <iostream>
using namespace std;
// method declaration without parameters
void game();
int main() {
char reply;
// calling the game method
game();
cout<<"Would you like to continue with the game ? Enter y to continue. Enter q to quit the game. " <<endl;
cin>>reply;
if(reply == 'y')
game();
if(reply == 'q')
cout<<"Quitting the game..."<<endl;
return 0;
}
void game()
{
int num, guess, attempt=0;
num = (rand() % 10) + 6;
cout<<endl<<"Welcome to the game of guessing the correct number "<<endl;
do
{
cout<<"Enter any number between 5 and 15. "<< endl;
cin>>guess;
if(guess<5 || guess>15)
{
do
{
cout<<"Invalid number. Enter any number between 5 and 15. "<<endl;
cin>>guess;
}while(guess<5 || guess>15);
}
if(guess < num)
{
cout<<"Too Low"<<endl;
attempt++;
}
if(guess > num)
{
cout<<"Too High"<<endl;
attempt++;
}
}while(guess != num);
cout<<"Congratulations. You figured out my number in "<<attempt<< " attempts."<<endl;
}
Explanation:
The expression
(rand() % 10)
generates a random number between 0 and 9. 6 is added to generate a random number between 5 and 15.
The integer variable attempt is initialized to 0.
Next, user is asked to guess the number. If the user enters an invalid input, the do-while loop begins until a valid input is received from the user.
cout<<"Enter any number between 5 and 15. "<< endl;
cin>>guess;
if(guess<5 || guess>15)
{
do
{
cout<<"Invalid number. Enter any number between 5 and 15. "<<endl;
cin>>guess;
}while(guess<5 || guess>15);
}
User is prompted to input the guess using the same do-while loop as above. Until the user guesses the correct number, the loop continues. Each incorrect guess by the user, increments the variable attempt by 1. This represents the number of attempts done by the user to guess the correct number.
if(guess < num)
{
cout<<"Too Low"<<endl;
attempt++;
}
if(guess > num)
{
cout<<"Too High"<<endl;
attempt++;
}
The random number generation and the guessing logic is put in a separate method game().
The entry and exit from the game only is put inside the main method.