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.
Copiez, modifiez, testez et exécutez le code dans Thonny ou sur online-python.com. Ne pas oublier de modifier les
await input_line()
eninput()
.
1from random import *
2from time import *
3
4print("Bienvenue sur mon application de jeux.")
5
6while True:
7 choix = await input_line("Quel jeu veux-tu essayer?\n"
8 " Jeu 1 [1], Jeu 2 [2] ou Jeu 3 [3] ou Quitter [q]")
9 if choix == "1":
10 print("Tu dois deviner un nombre entre 1 et 100 en un minimum d'essais.")
11 nb_secret = randint(1, 100)
12 essais = 0
13 trouve = False
14 while not trouve:
15 nb_propose = int(await input_line("Trouve le nombre: "))
16 essais += 1
17 if nb_propose < nb_secret:
18 print("Le nombre est plus grand!")
19 elif nb_propose > nb_secret:
20 print("Le nombre est plus petit!")
21 else:
22 print("Bravo, tu as trouvé", nb_secret, "en", essais, "essais.")
23 trouve = True
24 elif choix == "2":
25 print("Je vais deviner ton âge!")
26 print("Effectue la suite de calculs suivante:")
27 sleep(4)
28 print("Choisis un nombre entre 2 et 10.")
29 sleep(4)
30 print("Muliplie ce nombre par 2.")
31 sleep(4)
32 print("Ajoute 5 au résultat précédent.")
33 sleep(4)
34 print("Multiplie le nombre par 50.")
35 sleep(4)
36 deja_fete = await input_line("As-tu déjà fêté ton anniversaire cette"
37 " année? [oui/non]")
38 if deja_fete == "oui":
39 print("Ajoute 1774.")
40 else:
41 print("Ajoute 1775.")
42 sleep(2)
43 print("Soustrais ton année de naissance (par exemple, 2001).")
44 nombre = await input_line("Donne-moi le résultat final: ")
45 print("Tu as", nombre[1:3], "ans et le nombre que tu avais choisis au "
46 "départ est", nombre[0], ".")
47 elif choix == "3":
48 print("Réponds à l'énigme suivante:")
49 while True:
50 reponse = await input_line("Placée sous les pieds elle prête à rire.\n"
51 " Placée entre les doigts, elle a permis d'écrire.\n"
52 " Elle sert d'ornement mais s'envolent au gré du vent.\n"
53 " Qui est-elle? ")
54 if (reponse.lower() == "la plume" or reponse.lower() == "plume"
55 or reponse.lower() == "une plume"):
56 print("Bravo!")
57 break
58 else:
59 print("Essaye encore.")
60 elif choix == "q":
61 break
62 else:
63 print("Ce choix n'est pas valide.")
64
65print("Au revoir. Merci d'avoir joué avec moi!")
Solution
1from random import *
2from time import *
3
4# Définition des différents jeux
5async def 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(await input_line("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
20async def 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 = await input_line("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 = await input_line("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
44async def resous_enigme():
45 print("Réponds à l'énigme suivante:")
46 while True:
47 reponse = await input_line("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 = await input_line("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.
Travaillez dans Thonny ou sur online-python.com.