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:

  1. Assurez-vous que sous Exécuter le mode Pygame Zero soit décoché.

  2. Tapper le programme.

  3. Cliquez sur Enregistrer et entrez le nom du programme.

  4. Cliquez sur Exécuter le script courant.

Program 3.1 Bonjour à tous
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.

Program 3.2 Recevoir les entrées du clavier
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

Program 3.3 Décisions: if, elif, else
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

Program 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.

Program 3.5 Garder un pointage
 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.

Program 3.6 Jeux de devinettes avec une boucle
 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.

Program 3.7 Jeux de devinettes améliorés
 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.")