Guess the number using Python
General Introduction
"Guess the Number" is a simple game, which consists of simply finding the number generated by the program.
This game can be easy or difficult to play according to the defined rules. In this article we are going our version of this game, following the rules that we have to establish in advance.
If we guess the number we have a "Youpi 🎉🎉🎉🎉" message and if not then that's a message "Greater than the number to guess" or "Lower than the number to guess".
When the user cannot find the number at the end of the game, we display the number for example "The guess number is 67".
Rules
The generated number is between 1 and 300
The number of luck to find the number is 9
Application in code
Now that each of the rules is established, we have implemented the first rule.
Generate number between 1 and 300
In order to generate, a guess number we will use the following library from python core librairies.
import random
inside this library we have a function which allows us to generate a number in one between 2 values, we will use it to generate our number at each execution of the program. Then we will record the value of the generated value inside a variable guess.
guess = random.randint(1, 300)
Core program
In this part we will write the code to play the game.
For the needs of our program we will create 4 variables
max in order to save the maximum value that we can entered, by default it's 300
min in order to save the minimum value that we can entered, by default it's 1
luck the number of remaining attempts, by default it's 9
attempt the value entered by user, by default it's 0
min = 1
max = 300
luck = 9
attempt = 0
We have the option of declaring these variables before or after generating a number, it's up to us to do as we want.
First we will make sure that everything the user enters is in our range.
At each failed attempt we will ask him the same question until this one has something valid.
while luck > 0:
while min > attempt or max < attempt:
attempt = int(input('Entrer a number between %s and %s' % (min, max)))
Then we will display if the number to find is smaller, greater or equal to the number entered.
Each time we will take the opportunity to change the limits (max and min) of our interval.
If we find the number we stop the program.
if attempt == guess:
print("Youpi 🎉🎉🎉🎉")
break
else:
luck -= 1
if guess < attempt:
max = attempt
print('%d is greater than the number to guess'%(attempt))
else:
min = attempt
print('%d is lower than the number to guess'%(attempt))
finally, if the number of luck is exhausted we will display the number to guess
if luck == 0:
print('The guess number is %d'%(guess))
Full Code
import random
guess = random.randint(1, 300)
min = 1
max = 300
luck = 9
while luck > 0:
attempt = 0
while min > attempt or max < attempt:
attempt = int(input('Entrer a number between %s and %s' % (min, max)))
if attempt == guess:
print("Youpi 🎉🎉🎉🎉")
break
else:
luck -= 1
if guess < attempt:
max = attempt
print('%d is greater than the number to guess'%(attempt))
else:
min = attempt
print('%d is lower than the number to guess'%(attempt))
if luck == 0:
print('The guess number is %d'%(guess))
Very well written!