Comment coder le jeu de deviner un nombre facilement

billiard ball on bright orange surface
Photo by Atypeek Dgn on Pexels.com

Jeux de devinette

Énoncé du jeu

Écrire un programme qui choisit aléatoirement un nombre dans un intervalle donné, puis demande à l’utilisateur de deviner ce nombre. 

  • Si l’utilisateur trouve le nombre mystère, le programme affiche gagné
  • Si l’utilisateur ne trouve pas le nombre mystère, le programme affiche essayez encore. Et affiche une aide en encadrant le nombre mystère dans un intervalle plus restreint.

Algorithme de résolution

Pour aider le joueur à trouver la bonne réponse, on lui donne une indication qui nécessite de résoudre une équation de premier degré. On lui dit que s’il ajoute deux fois le nombre mystère à son nombre, il doit trouver un nombre calculé par le programme et qui est égal à 2*nMyst + nUtil.

Instructions nécessaires pour résoudre le problème

La fonction randint()

Tout d’abord on besoin d’importer une bibliothèque qui permet de donner des nombres aléatoires. Cette bibliothèque s’appelle random. Et à partir de cette bibliothèque on importe la fonction randint().

La fonction randint renvoie un nombre aléatoire dans un intervalle donné. Cette fonction prend deux arguments, le premier correspond à la borne mini de l’intervalle et le deuxième correspond à la borne maxi de l’intervalle.

La fonction print()

Cette fonction est très utilisée dans la programmation python, elle permet d’afficher tout ce qu’elle prend en argument. Elle sera utilisée principalement pour afficher des messages à l’utilisateur (le joueur).

La fonction input()

La fonction input() permet d’interagir avec l’utilisateur, elle sera utilisée pour lui demander de donner une proposition du nombre mystère. 

La fonction int()

Nous avons vu précédemment que cette fonction renvoie une chaine de caractère, il ne faut donc pas oublier de convertir cette chaine de caractère en nombre entier. La fonction qui permet de faire cette conversion est int().

Les tests conditionnels

Ces tests sont nécessaires pour ce type d’exercice. On utilisera les instructions if, elif et else pour comparer les nombres donnés par le joueur et le nombre mystère.

Étapes de résolution du problème

Voici les étapes de création du jeu devinette (deviner un nombre) 

  1. Importer de la bibliothèque random la fonction randint()
  2. Créer une variable et lui affecter un nombre qui correspondra à la borne maxi de l’intervalle
  3. Créer une variable qui correspond au nombre mystère en utilisant la fonction randint()
  4. Demander au joueur de faire une proposition pour deviner le nombre mystère.
  5. Tester si le nombre proposé et égal au nombre mystère
    1. Si le test est vrai alors afficher bravo le nombre est trouvé
    1. Si le nombre est supérieur (ou inférieur) le dire au joueur et lui demander de faire une deuxième proposition avec une indication qui permet de trouver le nombre mystère en résolvant une équation de premier degré
    1. Si malgré les indications le joueur ne trouve pas le nombre mystère, lui afficher le nombre non trouvé et le lui afficher.

Programme du jeu de devinette de nombre

from random import randint

nbrMax = 20
nMyst = randint(1,nbrMax)

print("J'ai choisi un nombre mystère entre 1 et ",nbrMax, " à toi de le deviner")

nUtil = int(input("Propose un nombre : "))
if nUtil < nMyst:
    print("Le nombre est trop petit")
    print("Voici une indication")
    print("Si tu ajoute 2 fois mon nombre à ton nombre tu dois trouver", 2*nMyst + nUtil)
    nUtil2 = int(input("Propose un autre nombre : "))
elif nUtil > nMyst:
    print("Le nombre est trop grand")
    print("Voici une indication")
    print("Si tu ajoute 3 fois mon nombre à ton nombre tu dois trouver", 3 * nMyst + nUtil)
    nUtil2 = int(input("Propose un autre nombre : "))
else:
    print("Félicitations ! Tu as trouvé ",nMyst," mon nombre mystère.")
    nUtil2 = 99 + nbrMax
if nUtil2 == nMyst and nUtil != nMyst :
    print("Félicitations ! Tu as trouvé ", nMyst, " mon nombre mystère en 2 essais!")
elif nUtil2 != nMyst and nUtil2 != 99 + nbrMax:
    print("Dommage! tu n'as pas trouvé.")
    print("Mon nombre mystère est : ",nMyst,".")

Simulation du programme

Voici deux simulations de ce programme :

Si vous avez aimé l'article vous êtes libre de le partager :)

4 commentaire

  1. Bonjour un petit programme sympa qui je vais utiliser avec mes élèves de 2nde ! merci

Laisser un commentaire