03 — Jeu de devinette

Niveau requis : 2 (while, conditions) / Difficulté : 2/5 / Durée estimée : 1–2 h

Objectif

L'ordinateur tire un nombre secret entre 1 et 100. L'utilisateur propose des nombres ; à chaque essai le programme répond « trop grand » ou « trop petit », jusqu'à la bonne réponse. À la victoire, le programme affiche le nombre d'essais utilisés.

J'ai choisi un nombre entre 1 et 100.
Ta proposition : 50
Trop grand !
Ta proposition : 25
Trop petit !
Ta proposition : 37
Gagne en 3 essais !

C'est le projet classique du while — et le premier programme où le déroulement dépend entièrement de l'utilisateur.

Notions utilisées

Cahier des charges

Étapes de construction

  1. Écris un programme SANS random ni boucle : secret = 42, une seule proposition, réponse « trop grand / trop petit / gagné ». Lance-le trois fois pour tester les trois branches.
  2. Remplace secret = 42 par random.randint(1, 100). Ajoute temporairement un print(secret) de triche pour pouvoir tester. Lance plusieurs fois : le nombre change.
  3. Enveloppe la proposition dans un while qui tourne tant que la réponse n'est pas trouvée. Vérifie que le jeu redemande après chaque essai raté et s'arrête à la victoire.
  4. Ajoute le compteur d'essais : initialisé à 0 avant la boucle, incrémenté à chaque proposition. Affiche-le dans le message de victoire. Vérifie qu'une victoire au premier coup affiche bien « 1 essai ».
  5. Ajoute le cas hors bornes (< 1 ou > 100) avec son message dédié. Teste avec 0 et 150.
  6. Retire le print(secret) de triche, joue une vraie partie de bout en bout. C'est fini quand tu gagnes sans tricher.

Extensions possibles

  1. Limiter à 10 essais : défaite si dépassement, avec révélation du secret (attention à la condition de sortie double : trouvé OU essais épuisés).
  2. Proposer de rejouer à la fin (boucle externe autour du jeu).
  3. Inverser les rôles : TU choisis le nombre, l'ordinateur devine par dichotomie. Excellent exercice de logique — nettement plus difficile.
  4. Afficher un historique des propositions à chaque tour (avant-goût des listes, niveau 3).

Erreurs fréquentes sur ce projet

Critères de réussite

Commit conseillé

git add projects/mini-projects/03-jeu-devinette/
git commit -m "project: add guessing game"

Puis entrée de journal + git push.