[spoiler title=”Lesson Video”]
Direct Download of Video (For mobile / offline viewing)(right click > save target as)
[/spoiler]
[spoiler title=”Lesson Source Code”]
#include
#include
#include
using namespace std;
int main(){
// Generate a random number
// Ask the user to guess the number
// For each guess we will tell the user if they are too high, or too low
// if( value == ourValue){ break; }
// While loops to control the flow of the game
// We're going to ask if they want to play again, before they exist
srand(time(NULL));
char quit = ' ';
bool run = true;
while (run){
int secret = rand() % 1000 + 1;
int guess = 0;
while (guess != secret){
do{
cout << "Enter a number between 1 and 1000: ";
cin >> guess;
} while (guess < 1 || guess > 1000);
if (guess < secret){
cout << "\nYou have guessed a number that is too low. ";
}
if (guess > secret){
cout << "\nYou have guessed a number that is too high. ";
}
if (guess == secret){
cout << "\nCongratulations you guessed right ";
}
}
cout << "Would you like quit y/n: ";
cin >> quit;
if (quit == 'y'){
run = false;
}
}
return 0;
}
[/spoiler]
Homework: https://beginnerscpp.com/forums/index.php/topic,63.0.html
Number guessing game
This number guessing game is an example of the type of program you can make with what you’ve learned up to this point with C++ using loops, and if statements. You could easily make far more complex games than this, but for a 15 minute (self-imposed) time limit, it’s not too bad. We cover a few concepts in this video that I want to put into writing.
Sentinel Loops
While we don’t directly use a sentinel loop in our program we use a bool to do roughly the same thing. A sentinel loop is a loop that is “broken” (exited) when a specific value becomes true. In this case we’re checking our variable “quit” to see if it becomes equal to y, then setting a boolean variable to false. The more ‘classic’ implementation of a sentinel loop is something like this:
...
while ( num != -999){
cout << "Num = " << num << endl;
cout << "Enter another value or -999 to exit";
cin >> num;
}