Vous devriez déjà avoir deviné le contenu de cet article. Et vous devriez probablement être familier avec la devinette des nombres et chercher un moyen de la construire en utilisant Python.

Apprenons à créer un jeu de devinettes à partir de zéro.

Jeu de devinettes

Le jeu est simple. L’utilisateur doit deviner le nombre généré aléatoirement qui se situe entre 1 et 100. C’est tout.

Le jeu est-il si simple ?

Oui, il l’est.

Mais il y a une chose que nous devons fournir aux utilisateurs pour qu’ils devinent le numéro. Il s’agit des indices. Nous devons fournir un message à l’utilisateur indiquant que le nombre deviné est inférieur au nombre correct ou que le nombre deviné est supérieur au nombre correct. Ainsi, les utilisateurs sauront dans quelle direction ils doivent aller.

Nous pouvons rendre le jeu plus excitant en ajoutant des fonctions supplémentaires telles que le nombre maximum de chances de deviner, l’augmentation de la fourchette, la mise en place d’un chronomètre, etc..,

La création d’un jeu de base fonctionnel est obligatoire. Ensuite, nous pouvons ajouter d’autres fonctions, comme nous l’avons vu. Nous allons donc créer la version de base du jeu dans cette section. Nous allons donc créer la version de base du jeu dans cette section, puis nous passerons à l’ajout de nouvelles fonctionnalités.

Je veux que vous essayiez de créer le jeu sans copier aveuglément le code. Je vais donc commencer par expliquer l’algorithme. Cela vous aidera à coder vous-même ou à comprendre le code rapidement.

Voyons l’algorithme pour créer le jeu de devinettes sur les nombres.

Algorithme

Assurez-vous d’avoir bien compris l’algorithme avant de passer à la partie codage.

  • Définissez la plage des nombres. Par défaut, elle est de 1 à 100, mais vous pouvez la modifier à votre guise.
  • Générez un nombre entier aléatoire à partir de la plage ci-dessus(1-100).
  • Commencez le jeu en affichant à l’utilisateur un message disant “Devinez le nombre de X à Y”. Vous pouvez mettre à jour le message comme vous le souhaitez.
  • Initialisez une variable à 0 pour compter le nombre total de chances que l’utilisateur a prises pour deviner le nombre correctement.
  • Ecrivez une boucle infinie.
    • Demandez à l’utilisateur de deviner le nombre.
    • Si le nombre deviné est égal au nombre généré aléatoirement, félicitez l’utilisateur avec un message de votre choix. Un exemple serait “-> Hourra ! Vous l’avez deviné en 5 étapes !”.
    • Interrompez la boucle après avoir félicité l’utilisateur.
    • Si le nombre deviné est inférieur au nombre généré aléatoirement, envoyez un message à l’utilisateur disant “-> Votre nombre est inférieur au nombre aléatoire” ou un message personnalisé ayant la même signification.
    • Si le nombre deviné est supérieur au nombre généré aléatoirement, l’utilisateur reçoit un message disant “-> Votre nombre est supérieur au nombre aléatoire” ou un message personnalisé ayant la même signification.
    • Enfin, incrémentez les chances que l’utilisateur a prises pour deviner.

Vous devriez avoir un code en tête après avoir vu l’algorithme. Ne vous inquiétez pas si vous n’obtenez pas le code complet. Mais assurez-vous de bien comprendre l’algorithme ci-dessus.

Il est temps de mettre la main à la pâte. Entrez dans le code sans plus attendre.

Le code

Avez-vous essayé d’écrire le code ?

Si oui et que vous l’avez terminé. C’est très bien. Consultez le code et comprenez-le pour ajouter de nouvelles perspectives à vos connaissances.

Ne vous inquiétez pas si vous n’avez pas écrit le code. Regardez le code ci-dessous et comprenez-le. Essayez de le modifier et de l’écrire à votre manière pour une meilleure compréhension.

Voyons donc le code.

import random


classe NumberGuessingGame :

    def __init__(self) :
        ## définit l'intervalle
        self.LOWER = 1
        self.HIGHER = 100

    ## méthode pour générer le nombre aléatoire
    def get_random_number(self) :
        return random.randint(self.LOWER, self.HIGHER)

    ## Méthode de démarrage du jeu
    def start(self) :
        ## générer le nombre aléatoire
        nombre_aléatoire = self.get_random_number()

        print(
            f "Devinez le nombre généré aléatoirement de {self.LOWER} à {self.HIGHER}")

        ## cœur du jeu
        chances = 0
        while True :
            user_number = int(input("Enter the guessed number : "))
            si numéro_utilisateur == numéro_aléatoire :
                print(
                    f"-> Bravo ! Vous l'avez obtenu en {chances 1} étape{'s' if chances > 1 else ''} !")
                break
            elif user_number < random_number :
                print("-> Votre nombre est inférieur au nombre aléatoire")
            else :
                print("-> Votre nombre est supérieur au nombre aléatoire")
            chances = 1

## instanciation et démarrage du jeu
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Il y a certaines choses que vous comprenez à partir du code.

  • La plage est définie dans la méthode __init__ afin qu’elle puisse être utilisée dans toutes les méthodes de la classe.
  • Nous pouvons facilement la modifier en un seul endroit, ce qui se répercute sur l’application en conséquence.
  • Il existe une méthode distincte pour générer le nombre aléatoire, qui suit le principe de “séparation des préoccupations”. Ici, notre méthode ne contient que peu de code, mais il est possible qu’il y en ait davantage à l’avenir.
  • Enfin, nous avons utilisé une classe pour que chaque méthode liée au jeu réside à l’intérieur de celle-ci. Et elle peut être facilement réutilisée dans d’autres applications.

Tous les points abordés ci-dessus sont liés à l’écriture d’un code propre. Nous devrions essayer d’écrire un code propre que vous comprenez même après quelques années .

L’exemple de sortie du jeu ressemble à ce qui suit.

python number_guessing_game.py 
Devinez le nombre généré aléatoirement entre 1 et 100
Entrez le nombre deviné : 50
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 75
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 90
-> Votre nombre est supérieur au nombre aléatoire
Entrez le nombre deviné : 85
-> Votre nombre est supérieur au nombre aléatoire
Entrez le nombre deviné : 80
-> Hourra ! Vous avez réussi en 5 étapes !

Je suppose que vous avez installé Python pour essayer le code ci-dessus.

Fonctionnalité supplémentaire

Nous allons ajouter le nombre maximum de chances qu’un utilisateur a de deviner le nombre. Si l’utilisateur ne parvient pas à deviner le nombre dans le délai imparti, il perd.

Comment l’ajouter ?

Il s’agit d’un processus simple en deux étapes. Voyons les étapes.

  • Définissez le nombre maximum de chances que l’utilisateur a de deviner le nombre.
  • Vérifiez si l’utilisateur a des chances ou non avant de lui demander sa contribution. Terminez le jeu si l’utilisateur n’a plus de chances.

Le code additionnel suivant complètera la fonctionnalité.

  • Ajoutez le code suivant dans la méthode __init__.
self.MAX_CHANCES = 10
  • Ajoutez la condition suivante avant que l’utilisateur n’entre la réponse suivante.
si chances == self.MAX_CHANCES :
                print("-> Ouf ! Vous avez perdu la partie. Vous n'avez plus de chances")

Maintenant, essayez le jeu sans deviner le bon chiffre. Vous devriez obtenir un résultat similaire à celui qui suit.

python number_guessing_game.py 
Devinez le nombre généré aléatoirement entre 1 et 100. Vous avez 10 chances de deviner.
Entrez le nombre deviné : 1
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 2
-> Votre nombre est inférieur au nombre aléatoire
Entrez le numéro deviné : 3
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 4
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 5
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 6
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 7
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 8
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 9
-> Votre nombre est inférieur au nombre aléatoire
Entrez le nombre deviné : 10
-> Votre nombre est inférieur au nombre aléatoire
-> Ouf ! Vous avez perdu le jeu. Vous n'avez plus de chances

Bravo ! Nous avons ajouté une fonction supplémentaire à notre jeu. Mais ce n’est pas tout. Vous pouvez ajouter d’autres fonctions pour rendre le jeu plus attrayant pour les utilisateurs. C’est à vous de jouer. Allez-y et rendez-le encore plus beau :).

Conclusion

Nous avons créé un jeu simple de devinettes de chiffres. Maintenant, c’est à vous de penser aux jeux auxquels vous jouiez quand vous étiez jeune. Créez-les en utilisant un langage de programmation et partagez-les avec vos amis. Nous pouvons numériser la plupart des jeux de notre enfance.

Ensuite, explorez l’IDE Python et le compilateur en ligne pour exécuter le code Python.

Bon codage 🙂