Amélioration du code ?
Hello,
Cette fois ci j'ai beaucoup moins galérer sur cet exercice car je ne suis pas allé trop loin, comme nous l'avons fait de façon différente, je ne vois pas ce que je pourrai améliorer ?
# Importer et générer le nom mystère
import random
random_int = random.randint(1, 100)
print(""" Bienvenue dans le jeu du nombre mystère.
Voici les règles du jeu : Vous avez 5 essais pour trouver le nombre.
Le nombre se trouve entre 1 et 100.""")
essais_maximum = 5
main_game = True
while main_game == True:
try:
player_guess = int(input("Devinez le nombre : "))
except ValueError:
print("Veuillez rentrer un chiffre.")
continue
if player_guess == random_int:
main_game = False
resultat_win = 5 - essais_maximum
print(f"Bravo vous avez trouvé le nombre mystère en {resultat_win} essais !")
elif player_guess > random_int and player_guess < 101 and essais_maximum != 1:
essais_maximum -= 1
print(f"Le chiffre mystère est plus plus petit que {player_guess}")
print(f"Il vous reste {essais_maximum}")
elif player_guess < random_int and player_guess > 0 and essais_maximum != 1:
essais_maximum -= 1
print(f"Le chiffre mystère est plus grand que {player_guess}.")
print(f"Il vous reste {essais_maximum}")
elif essais_maximum == 1:
print(f"Vous avez perdu ! Le chiffre mystère est {random_int}")
main_game = False
else:
print("Veuillez renter un chiffre entre 1 et 100.")
Salut Alan !
C'est super, bravo, ton code est bien structuré en général, avec des noms explicites, ça se lit bien :)
Tu peux l'améliorer encore un peu notamment en simplifiant les conditions :
Voici une version révisée :
import random
def main():
# Générer le nombre mystère
random_int = random.randint(1, 100)
print("""Bienvenue dans le jeu du nombre mystère.
Voici les règles du jeu : Vous avez 5 essais pour trouver le nombre.
Le nombre se trouve entre 1 et 100.""")
essais_maximum = 5
main_game = True
while main_game:
try:
player_guess = int(input("Devinez le nombre : "))
except ValueError:
print("Veuillez rentrer un chiffre.")
continue
if player_guess == random_int:
print(f"Bravo, vous avez trouvé le nombre mystère en {5 - essais_maximum + 1} essai(s) !")
break
elif player_guess < 1 or player_guess > 100: # 👈 On gère ce cas directement ici
print("Veuillez rentrer un chiffre entre 1 et 100.")
else:
essais_maximum -= 1
if essais_maximum == 0:
print(f"Vous avez perdu ! Le chiffre mystère était {random_int}")
break
# On utilise un opérateur ternaire pour créer le message final et éviter des `if`
hint = "plus petit" if player_guess > random_int else "plus grand"
print(f"Le chiffre mystère est {hint} que {player_guess}. Il vous reste {essais_maximum} essai(s).")
if __name__ == "__main__":
main()
Mais on rentre déjà dans de l'optimisation de code, c'est normal au début de décomposer les choses comme tu l'a fait, et ça prendra vraiment du temps pour arriver à écrire du code plus succinct directement donc ne t'en fais pas. L'important ici c'est d'arriver à produire un code qui marche et de comprendre la logique, et c'est réussi 👏
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte