code en anglais, commentaires en français
This commit is contained in:
parent
f2db4d1a6e
commit
10b7c715c1
2 changed files with 79 additions and 27 deletions
|
|
@ -6,29 +6,40 @@ min=0
|
||||||
max=10
|
max=10
|
||||||
print("Je pense à un nombre entre", min, "et", max )
|
print("Je pense à un nombre entre", min, "et", max )
|
||||||
|
|
||||||
nombre = random.randint(min,max)
|
# Tire un entier ("integer") au hasard entre min et max compris
|
||||||
essais=4
|
number = random.randint(min,max)
|
||||||
|
|
||||||
while essais > 0:
|
attempts = 4
|
||||||
print("Devine ? ")
|
|
||||||
devine = input()
|
|
||||||
devine = int(devine)
|
|
||||||
|
|
||||||
if devine > nombre:
|
while attempts > 0:
|
||||||
|
print("guess ? ")
|
||||||
|
|
||||||
|
# attends une saisie de l'utilisateur sous forme de chaine de caractère
|
||||||
|
guess = input()
|
||||||
|
|
||||||
|
# interprète la chaine de caractère comme un entier
|
||||||
|
guess = int(guess)
|
||||||
|
|
||||||
|
if guess > number:
|
||||||
print("Trop grand")
|
print("Trop grand")
|
||||||
|
|
||||||
if devine < nombre:
|
if guess < number:
|
||||||
print("Trop petit")
|
print("Trop petit")
|
||||||
|
|
||||||
if devine == nombre:
|
if guess == number:
|
||||||
|
# sort directement de la boucle "while"
|
||||||
break
|
break
|
||||||
|
|
||||||
essais = essais - 1
|
attempts = attempts - 1
|
||||||
print("Plus que", essais, "essais")
|
print("Plus que", attempts, "essais")
|
||||||
|
|
||||||
|
|
||||||
if devine != nombre:
|
# On arrive ici dans deux situations :
|
||||||
print("Perdu, je pensais au nombre", nombre)
|
# 1) tous les essais ont été tentés, la boucle s'arrête d'elle-même
|
||||||
|
# 2) on a deviné le nombre secret, on est sorti par l'instruction "break"
|
||||||
|
|
||||||
|
if guess != number:
|
||||||
|
print("Perdu, je pensais au nombre", number)
|
||||||
else:
|
else:
|
||||||
print("Bravo !")
|
print("Bravo !")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +1,59 @@
|
||||||
#encoding: utf-8
|
#encoding: utf-8
|
||||||
|
|
||||||
|
# Le code se découpe en deux parties :
|
||||||
|
# dans la première, on met en place les variables de base
|
||||||
|
# dans la seconde, on défini des _fonctions_
|
||||||
|
# dans la troisième, on les instructions qui les utilisent
|
||||||
|
|
||||||
|
#############
|
||||||
|
# Variables #
|
||||||
|
#############
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
min=0
|
min=0
|
||||||
max=10
|
max=10
|
||||||
print("Pense à un nombre entre",min,"et",max)
|
print("Pense à un nombre entre",min,"et",max)
|
||||||
|
|
||||||
essais = 4
|
attempts = 10
|
||||||
|
|
||||||
def deviner(nb_min,nb_max):
|
|
||||||
|
#############
|
||||||
|
# Fonctions #
|
||||||
|
#############
|
||||||
|
|
||||||
|
def try_to_guess(nb_min,nb_max):
|
||||||
|
"""Choisi un nombre compris entre un min et un max et le renvoie."""
|
||||||
|
|
||||||
|
# On peut combiner deux conditions à l'aide d'opérateurs logiques.
|
||||||
|
# Ce test sert à vérifier s'il n'y a pas eu d'erreurs dans l'enchaînement
|
||||||
|
# des réponses de l'être humain.
|
||||||
|
# Si le min est le même que le max, il n'y a pas d'entier possible entre les deux.
|
||||||
|
# De même, si le min est supérieur au max, il y a eu erreur de logique.
|
||||||
if nb_min == nb_max or nb_min > nb_max:
|
if nb_min == nb_max or nb_min > nb_max:
|
||||||
print("Tu as triché !")
|
print("Tu as triché !")
|
||||||
hasard = random.randint(nb_min,nb_max)
|
|
||||||
return hasard
|
rand = random.randint(nb_min,nb_max)
|
||||||
|
# Le nombre tiré au hasard est _renvoyé_
|
||||||
|
return rand
|
||||||
|
|
||||||
|
|
||||||
def repondu( reponse ):
|
def reply( answer ):
|
||||||
if reponse == 0:
|
"""Analyse la réponse de l'humain et renvoie vrai si on a trouvé la bonne."""
|
||||||
|
|
||||||
|
# Ces variables ont été définies en dehors de la fonction, elles sont "globales"
|
||||||
|
# il est nécessaire de le spécifier explicitement
|
||||||
|
global min,max
|
||||||
|
|
||||||
|
if answer == 0:
|
||||||
min = min + 1
|
min = min + 1
|
||||||
return False
|
return False
|
||||||
|
|
||||||
elif reponse == 1:
|
elif answer == 1:
|
||||||
max = max - 1
|
max = max - 1
|
||||||
return False
|
return False
|
||||||
|
|
||||||
elif reponse == 2:
|
elif answer == 2:
|
||||||
print("Enfin !")
|
print("Enfin !")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
@ -33,16 +62,28 @@ def repondu( reponse ):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
while essais > 0:
|
########
|
||||||
devine = deviner(min,max)
|
# Code #
|
||||||
|
########
|
||||||
|
|
||||||
print("Je pense au nombre",devine,", est-il:")
|
while attempts > 0:
|
||||||
|
guess = try_to_guess(min,max)
|
||||||
|
|
||||||
|
print("Je crois que tu penses au nombre",guess,", est-il:")
|
||||||
print("0: trop petit ?")
|
print("0: trop petit ?")
|
||||||
print("1: trop grand ?")
|
print("1: trop grand ?")
|
||||||
print("2: le bon numéro ?")
|
print("2: le bon numéro ?")
|
||||||
reponse = int( input() )
|
answer = int( input() )
|
||||||
|
|
||||||
trouve = repondu( reponse )
|
found = reply( answer )
|
||||||
if trouve == True:
|
if found == True:
|
||||||
|
# il est inutile de continuer si on a déjà trouvé
|
||||||
break
|
break
|
||||||
|
else:
|
||||||
|
attempts = attempts - 1
|
||||||
|
|
||||||
|
if found == True:
|
||||||
|
print("J'ai gagné :-)")
|
||||||
|
else:
|
||||||
|
print("J'ai perdu :-(")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue