Fonctions Lab#
Exercice 1#
Lisez le code suivant et expliquez ce qu'il fait sans l'exécuter.
Exécutez le code. Le code fait-il ce que vous pensiez?
Comment structurer ce code différemment pour qu'il soit plus lisible?
Découpez le code en parties qui effectuent une tâche donnée et ajouter des commentaires.
Remplacez chaque partie par une fonction.
Modifiez, testez et exécutez le code suivant.
from random import *
from time import *
print("Bienvenue sur mon application de jeux.")
while True:
choix = input("Quel jeu veux-tu essayer?\n"
" Jeu 1 [1], Jeu 2 [2] ou Jeu 3 [3] ou Quitter [q]")
if choix == "1":
print("Tu dois deviner un nombre entre 1 et 100 en un minimum d'essais.")
nb_secret = randint(1, 100)
essais = 0
trouve = False
while not trouve:
nb_propose = int(input("Trouve le nombre: "))
essais += 1
if nb_propose < nb_secret:
print("Le nombre est plus grand!")
elif nb_propose > nb_secret:
print("Le nombre est plus petit!")
else:
print("Bravo, tu as trouvé", nb_secret, "en", essais, "essais.")
trouve = True
elif choix == "2":
print("Je vais deviner ton âge!")
print("Effectue la suite de calculs suivante:")
sleep(4)
print("Choisis un nombre entre 2 et 10.")
sleep(4)
print("Muliplie ce nombre par 2.")
sleep(4)
print("Ajoute 5 au résultat précédent.")
sleep(4)
print("Multiplie le nombre par 50.")
sleep(4)
deja_fete = input("As-tu déjà fêté ton anniversaire cette"
" année? [oui/non]")
if deja_fete == "oui":
print("Ajoute 1774.")
else:
print("Ajoute 1775.")
sleep(2)
print("Soustrais ton année de naissance (par exemple, 2001).")
nombre = input("Donne-moi le résultat final: ")
print("Tu as", nombre[1:3], "ans et le nombre que tu avais choisis au "
"départ est", nombre[0], ".")
elif choix == "3":
print("Réponds à l'énigme suivante:")
while True:
reponse = input("Placée sous les pieds elle prête à rire.\n"
" Placée entre les doigts, elle a permis d'écrire.\n"
" Elle sert d'ornement mais s'envolent au gré du vent.\n"
" Qui est-elle? ")
if (reponse.lower() == "la plume" or reponse.lower() == "plume"
or reponse.lower() == "une plume"):
print("Bravo!")
break
else:
print("Essaye encore.")
elif choix == "q":
break
else:
print("Ce choix n'est pas valide.")
print("Au revoir. Merci d'avoir joué avec moi!")
Solution
1from random import *
2from time import *
3
4# Définition des différents jeux
5def trouve_un_nombre():
6 print("Tu dois deviner un nombre entre 1 et 100 en un minimum d'essais.")
7 nb_secret = randint(1, 100)
8 essais = 0
9 while True:
10 nb_propose = int(input("Trouve le nombre: "))
11 essais += 1
12 if nb_propose < nb_secret:
13 print("Le nombre est plus grand!")
14 elif nb_propose > nb_secret:
15 print("Le nombre est plus petit!")
16 else:
17 print("Bravo, tu as trouvé", nb_secret, "en", essais, "essais.")
18 break
19
20def devine_age():
21 print("Je vais deviner ton âge!")
22 print("Effectue la suite de calculs suivante:")
23 sleep(4)
24 print("Choisis un nombre entre 2 et 10.")
25 sleep(4)
26 print("Muliplie ce nombre par 2.")
27 sleep(4)
28 print("Ajoute 5 au résultat précédent.")
29 sleep(4)
30 print("Multiplie le nombre par 50.")
31 sleep(4)
32 deja_fete = input("As-tu déjà fêté ton anniversaire cette année?"
33 " [oui/non]")
34 if deja_fete == "oui":
35 print("Ajoute 1774.")
36 else:
37 print("Ajoute 1775.")
38 sleep(2)
39 print("Soustrais ton année de naissance (par exemple, 2001).")
40 nombre = input("Donne-moi le résultat final: ")
41 print("Tu as", nombre[1:3], "ans et le nombre que tu avais choisis au "
42 "départ est", nombre[0], ".")
43
44def resous_enigme():
45 print("Réponds à l'énigme suivante:")
46 while True:
47 reponse = input("Placée sous les pieds elle prête à rire.\n"
48 " Placée entre les doigts, elle a permis d'écrire.\n"
49 " Elle sert d'ornement mais s'envolent au gré du vent.\n"
50 " Qui est-elle? ")
51 if (reponse.lower() == "la plume" or reponse.lower() == "plume"
52 or reponse.lower() == "une plume"):
53 print("Bravo!")
54 break
55 else:
56 print("Essaye encore.")
57
58
59# Déroulement du jeu
60
61# Phrase d'accueil
62print("Bienvenue sur mon application de jeux.")
63
64# Choix des jeux
65while True:
66 choix = input("Quel jeu veux-tu essayer?\n"
67 "Jeu 1 [1], Jeu 2 [2] ou Jeu 3 [3] ou Quitter [q] ")
68 if choix == "1":
69 await trouve_un_nombre()
70 elif choix == "2":
71 await devine_age()
72 elif choix == "3":
73 await resous_enigme()
74 elif choix == "q":
75 break
76 else:
77 print("Ce choix n'est pas valide.")
78
79# Phrase de fin
80print("Au revoir. Merci d'avoir joué avec moi!")
Exercice 2#
Écrivez un jeu d'énigmes qui a la structure suivante:
Créez plusieurs fonctions qui gèrent la résolution des énigmes. Celles-ci doivent retourner l'information nécessaire pour le calcul du score.
Utilisez une variable pour le score.
Gérez le déroulement du jeu.
# Écrivez le code ici