✖️ Jeu des Tables de Multiplication

Exercice d'algorithme - Boucles et génération aléatoire

📝 Exercice : Jeu des Tables de Multiplication

✖️
Objectif : Écrire un programme qui permet de tester les tables de multiplication.
  • Le programme choisit au hasard deux entiers x et y (entre 0 et 10)
  • Il affiche la question : x * y = ?
  • L'utilisateur répond en donnant un entier n
  • Le programme vérifie si c'est la bonne réponse et affiche "Bravo" ou "Erreur"
  • Le jeu se déroule en 5 essais
  • À chaque essai, on calcule le score
  • À la fin du jeu, afficher le score final
Exemple d'exécution :

Essai : 1

4 * 7 = ?

Votre réponse : 28

Bravo !

Score actuel : 1/5

📌 Déroulement du programme :
  • Utiliser une boucle pour les 5 essais
  • Générer des nombres aléatoires entre 0 et 10
  • Demander à l'utilisateur sa réponse
  • Vérifier si la réponse est correcte
  • Mettre à jour le score
  • Afficher le résultat final

✅ Solution détaillée

Méthode pas à pas :
  1. Initialiser le score à 0
  2. Pour chaque essai de 1 à 5 faire :
    • Générer aléatoirement x entre 0 et 10
    • Générer aléatoirement y entre 0 et 10
    • Afficher "Essai i" (i de 1 à 5)
    • Afficher la question "x * y"
    • Demander la réponse de l'utilisateur
    • Si réponse correcte :
      • Afficher "BRAVO"
      • Augmenter le score de 1
    • Sinon :
      • Afficher "Erreur"
    • Afficher une séparation "***********"
  3. Afficher le score final
📋 Tableau des variables (TDO) :
Nom Variable Type Description
score Entier Nombre de bonnes réponses
i Entier Compteur de boucle (0 à 4)
x, y Entier Nombres à multiplier
n Entier Réponse de l'utilisateur
📊 Exemple d'exécution complète :

Essai 1 :

  • Essai 1
  • 4 * 7
  • Votre réponse : 28
  • BRAVO
  • ***********

Essai 2 :

  • Essai 2
  • 9 * 6
  • Votre réponse : 54
  • BRAVO
  • ***********

Résultat final : Score final = 5

Points clés de la solution :
  • Utilisation d'une boucle for i in range(5)
  • Génération de nombres aléatoires avec random.randint(0, 10)
  • Conversion de i+1 pour afficher "Essai 1" au lieu de "Essai 0"
  • Comparaison simple if n == x*y
  • Mise à jour du score avec score = score + 1

📋 Algorithme détaillé

** Algorithme : Jeu des tables de multiplication **
** Exactement comme le code Python de la photo **
Algorithme TablesMultiplication
Début
// 1. Initialiser le score à 0
score <- 0
// 2. Boucle pour les 5 essais (i de 0 à 4)
Pour i <- 0 à 4 Faire
// 3. Afficher le numéro de l'essai (i+1 pour commencer à 1)
Ecrire("Essai " + convertir_en_chaine(i+1))
// 4. Générer deux nombres aléatoires entre 0 et 10
x <- alea(0, 10)
y <- alea(0, 10)
// 5. Afficher la question de multiplication
Ecrire(x, "*", y)
// 6. Demander la réponse à l'utilisateur
Ecrire("votre réponse :")
Lire(n)
// 7. Vérifier si la réponse est correcte
Si n = x * y Alors
Ecrire("BRAVO")
score <- score + 1
Sinon
Ecrire("Erreur")
FinSi
// 8. Afficher une séparation entre les essais
Ecrire("***********")
FinPour
// 9. Afficher le score final
Ecrire("Score finale = ", score)
Fin
🔍 Explications détaillées :
  1. Initialisation : Le score commence à 0
  2. Boucle : 5 essais avec i de 0 à 4
  3. Affichage essai : On affiche "Essai 1" grâce à i+1
  4. Génération aléatoire : Deux nombres entre 0 et 10
  5. Question : Affichage simple "x * y"
  6. Saisie : Lecture de la réponse utilisateur
  7. Vérification : Comparaison avec le produit x*y
  8. Feedback : "BRAVO" ou "Erreur" selon le résultat
  9. Mise à jour score : Incrémentation si bonne réponse
  10. Séparation : Ligne d'étoiles entre chaque essai
  11. Résultat final : Affichage du score total

🐍 Code Python

▶️ Exécuter
# Programme Python : Jeu des tables de multiplication
# Code corrigé selon la photo - Sans utiliser de fonctions
import random # Nécessaire pour random.randint
# 1. Initialiser le score à 0
score = 0
# 2. Boucle pour les 5 essais (i de 0 à 4)
for i in range(5) :
# 3. Afficher le numéro de l'essai (i+1 pour commencer à 1)
print("Essai " + str(i+1)) # Essai 1
# 4. Générer deux nombres aléatoires entre 0 et 10
x = random.randint(0, 10)
y = random.randint(0, 10)
# 5. Afficher la question de multiplication
print(x, "*", y)
# 6. Demander la réponse à l'utilisateur
n = int(input("votre réponse :"))
# 7. Vérifier si la réponse est correcte
if (n == x * y) :
print("BRAVO")
score = score + 1
else :
print("Erreur")
# 8. Afficher une séparation entre les essais
print("***********")
# 9. Afficher le score final
print("Score finale = ", score)
🎯 Étapes du programme Python :
  1. Importation : import random pour générer des nombres aléatoires
  2. Initialisation : score = 0 pour compter les bonnes réponses
  3. Boucle : for i in range(5) pour 5 essais (i=0,1,2,3,4)
  4. Affichage essai : "Essai " + str(i+1) pour afficher "Essai 1", "Essai 2", etc.
  5. Génération aléatoire : random.randint(0, 10) pour x et y
  6. Question : print(x, "*", y) affiche la multiplication
  7. Saisie : int(input("votre réponse :")) lit la réponse
  8. Vérification : if (n == x * y) compare la réponse
  9. Feedback : Affiche "BRAVO" ou "Erreur"
  10. Mise à jour score : score = score + 1 si bonne réponse
  11. Séparation : Ligne d'étoiles entre chaque essai
  12. Résultat : Affiche le score final
Correspondance Algorithme ↔ Python :
Algorithme Python Description
score ← 0 score = 0 Initialisation du score
Pour i ← 0 à 4 for i in range(5) Boucle de 5 essais
convertir_en_chaine(i+1) str(i+1) Conversion en chaîne
alea(0, 10) random.randint(0, 10) Génération nombre aléatoire
Ecrire() print() Affichage à l'écran
Lire(n) n = int(input()) Lecture d'un entier
Si n = x*y Alors if (n == x*y): Condition de vérification
score ← score + 1 score = score + 1 Incémentation du score