3. Jeux de devinettes basés sur du texte
Ces programmes peuvent être entrés en utilisant un éditeur de texte. Je suggère d’utiliser l’éditeur Thonny puisqu’il est livré avec Python, Pygame Zero et d’autres bibliothèques toutes préinstallées dans un seul téléchargement.
3.1. Bonjour à tous
Traditionnellement, le premier programme utilisé pour s’assurer que Python soit bien installé et qu’on soit en mesure d’exécuter d’autres programmes est le programme “Bonjour à tous” (“Hello, world” en anglais).
Si vous utilisez l’éditeur Thonny:
Assurez-vous que sous
Exécuter
le mode Pygame Zero soit décoché.Tapper le programme.
Cliquez sur
Enregistrer
et entrez le nom du programme.Cliquez sur
Exécuter le script courant
.
1 2 3 | print("Bonjour à tous")
# Cette ligne est un commentaire, vous n'avez pas besoin de taper celles-ci!
|
3.2. Recevoir les entrées du clavier
Ce programme va faire une pause et attendre pour que vous entrer du texte avec le clavier et que vous tapez sur la touche d’entrée. Le texte que vous entrez est stocké dans une variable nommée x
.
1 2 3 4 5 6 |
print("Entrez votre nom:")
x = input()
print("Bonjour", x)
if x == "richard":
print("C'est un nom pas mal chouette ça!")
|
Exercice
Entrez les noms de vos amis et affichez des messages qui leur sont personnalisés.
3.3. Faire des décisions: if, elif, else
Voici comment on ajoute un autre nom à Program 3.2
1 2 3 4 5 6 7 8 9 | print("Entrez votre nom:")
x = input()
print("Bonjour", x)
if x == "richard":
print("C'est un nom pas mal chouette ça!")
elif x == "nicola":
print("Ça c'est tout un nom!")
else:
print("Je ne connais pas ton nom", x)
|
Program 3.3 est très similaire à Program 3.2. Les nouvelles lignes ont été surlignées. Vous pouvez soit modifier Program 3.2, ou créer un nouveau ficher et utiliser les fonctions copier-coller pour copier le code de l’ancien programme vers le nouveau programme.
3.4. Une question de mathématique aléatoire
1 2 3 4 5 6 7 8 9 10 | import random
n = random.randint(0, 10)
print("Qu'est-ce que", n, "plus 7?")
g = int(input()) # Pourquoi est ce qu'on utilise int() ici?
if g == n + 7:
print("C'est bien ça")
else:
print("Faux")
|
Exercice
Ajoute plus de questions. Par exemple:
Au lieu de 7, utilisez un autre nombre aléatoire.
Utilisez un plus grand nombre aléatoire.
Multipliez (utilisez *), divisez (utilisez /) ou soustrayez (utilisez -) les nombres.
Exercice
Affichez le nombre de questions que le joueur a réussi à la fin du programme.
3.5. Garder un pointage
On a créé une variable pointage
afin d’enregistrer le nombre de questions que le joueur a réussi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | résultat = 0
print("Qu'est-ce que 1+1 ?")
g = int(input())
if g == 2:
print("C'est bien ça")
résultat = résultat + 1
print("Qu'est-ce que 35-25 ?")
g = int(input())
if g == 10:
print("C'est bien ça")
résultat = résultat + 1
print("Ton résultat:", résultat)
|
3.6. Jeux de devinettes avec une boucle
Cette boucle while
répète ses instructions pour toujours… ou jusqu’à ce que le joueur réussit à avoir une bonne réponse. Lorsque c’est le cas, la boucle break
et on sort de la boucle. À noter que tous les éléments de la boucle sont en retrait.
1 2 3 4 5 6 7 8 9 10 11 12 | import random
n = random.randint(0, 10)
while True:
print("Je pense à un nombre, pouvez-vous deviner lequel?")
g = int(input())
if g == n:
break
else:
print("Faux")
print("Vous avez trouvé!")
|
Exercice
Donnez un indice au joueur lorsqu’il n’a pas la bonne réponse. Est-ce que leur réponse était trop grande ou trop petite?
Exercice
Affichez le nombre de tentatives qu’a fait le joueur avant de trouver la bonne réponse.
3.7. Jeux de devinettes améliorés
Program 3.6 avec un indice qui révèle si la tentative est trop grande ou trop petite par rapport à la réponse.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import random
n = random.randint(0, 100)
tentatives = 0
while True:
tentatives = tentatives + 1
print("Je pense à un nombre, pouvez-vous deviner lequel?")
g = int(input())
if g == n:
break
elif g < n:
print("Trop petit")
elif g > n:
print("Trop grand")
print("C'est bien ça! Vous avez pris", tentatives, "tentatives.")
|