This is my code, which chooses a random number from 0 to 10 for the user to guess.
//guess the number game
//my code
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
unsigned int secretNumber;
int guess;
int maxNumber = 10;
int maxTries = 4;
int numTries = 1;
srand(static_cast<unsigned int>(time(0)));
secretNumber = (rand() % 10)+ 1;
cout << "GUESS A NUMBER FROM 0 TO 10!!\n";
do {
cout << "\nGuess: \n";
cin >> guess;
if (guess < secretNumber)
{
cout << "too low:(:(!! ";
numTries++;
cout << "Guesses Left: " << maxTries - numTries;
} ***//Would it be better to add a bool in the condition?***
else if (guess > secretNumber && guess <= maxNumber)
{
cout << "Too high:D:D!! ";
numTries++;
cout << "Guesses Left: " << maxTries - numTries;
}
else if (guess > maxNumber)
{
cout << "Do you know how to count to 10?\n";
cout << "Only from 0 TO 10!! ";
numTries++;
cout << "Guesses Left: " << maxTries - numTries;
}
else {
cout << "WOW! you GUESSED IT?! AMAZING!!!!";
cout << "You're right! the number is " << guess;
cout << "\nYou got it right in " << numTries << " guesses!!!";
}
if (numTries == maxTries)
{
cout << "\n\nYou LOOSE :( LOL!";
}
} while (guess != secretNumber && maxTries != numTries);
return 0;
}
This is the teacher's code, which is simpler and includes a bool variable. Should my previous code be simpler, just as this one?
// Example program
// Teacher's code
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int secretNumber = 7;
int guess;
int numTries = 0;
int maxTries = 3;
bool outOfGuesses = false;
while (secretNumber != guess && !outOfGuesses)
{
if (numTries != maxTries)
{cout << "Guess a Number: ";
cin >> guess;
numTries++;}
else
{
outOfGuesses = true;
}
}
if (outOfGuesses)
{
cout << "You loose!";
}
else
{
cout << "You win!";
}
return 0;
}
//Is my code as efficient and simple as the teacher's code? //Is there a simpler way to do what I intended to do in my code?