Comment créer un jeu de devinettes de nombres en Python ?

Vous devriez déjà avoir deviné le contenu de cet article. Et vous devriez probablement être familiarisé avec l’estimation des nombres et chercher un moyen de le 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 ?

Ouais c’est ça.

Mais, il y a une chose que nous devons fournir aux utilisateurs pour deviner le nombre. C’est des indices. Nous devons fournir un message à l’utilisateur indiquant que le nombre deviné actuel est inférieur au nombre correct ou que le nombre deviné actuel est supérieur au nombre correct. Pour que les utilisateurs sachent dans quelle direction ils doivent aller.

Nous pouvons le rendre plus excitant en ajoutant des fonctionnalités supplémentaires comme le nombre maximum de chances de deviner, l’augmentation de la portée, le réglage d’une minuterie, etc.,

La création du jeu de travail de base est obligatoire. Après cela, nous pouvons ajouter plus de fonctionnalités comme indiqué. Nous allons donc créer la version de base du jeu dans cette section. Et puis nous passerons à ajouter de nouvelles fonctionnalités.

Je veux que vous essayiez de créer le jeu sans copier aveuglément le code. Donc, je vais d’abord 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 de nombres.

Algorithme

Assurez-vous de bien comprendre l’algorithme avant de passer à la partie codage.

  • Définissez la plage des nombres. Par défaut, c’est 1-100 mais vous pouvez le changer comme vous préférez.
  • Générez un entier aléatoire à partir de la plage ci-dessus (1-100).
  • Démarrez 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.
  • Ecrire une boucle infinie.
    • Demandez à l’utilisateur de deviner le nombre.
    • Si le nombre deviné actuel est égal au nombre généré aléatoirement, félicitez l’utilisateur avec un message comme vous le souhaitez. Un exemple serait « -> Hourra ! Vous l’avez obtenu en 5 étapes ! ».
    • Cassez la boucle après avoir félicité l’utilisateur.
    • Si le nombre deviné actuel 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é actuel est supérieur au nombre généré aléatoirement, envoyez un message à l’utilisateur disant « -> Votre nombre est supérieur au nombre aléatoire » ou une coutume ayant la même signification.
    • Enfin, augmentez les chances que l’utilisateur a prises pour deviner.

Vous auriez du code dans votre esprit après avoir vu l’algorithme. Ne vous inquiétez pas même si vous n’obtenez pas le code complet. Mais assurez-vous de comprendre l’algorithme ci-dessus.

Il est temps de mettre la main au travail avec le code. Entrez dans le code sans plus tarder.

Code

As-tu essayé d’écrire le code ?

Si oui et complété. C’est bien. Consultez le code et comprenez-le pour ajouter plus de perspectives à vos connaissances.

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

Voyons donc le code.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Il y a certaines choses que vous comprenez du code.

  • La plage est définie dans la méthode __init__ afin qu’elle puisse être utilisée dans les méthodes de classe.
  • Nous pouvons facilement le changer en un seul endroit qui change en conséquence dans l’application.
  • Il existe une méthode distincte pour générer le nombre aléatoire qui suit le principe de « séparer les préoccupations ». Ici, notre méthode a peu de code, mais elle pourrait augmenter à l’avenir.
  • Enfin, nous avons utilisé la classe pour que chaque méthode liée au jeu réside à l’intérieur. Et il peut être facilement réutilisé dans d’autres applications.

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

L’exemple de sortie du jeu se présente comme suit.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

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

Caractéristique supplémentaire

Nous allons ajouter le nombre maximum de chances qu’un utilisateur puisse deviner le nombre. Si l’utilisateur ne devine pas le nombre dans le nombre de chances, alors l’utilisateur perd.

Comment l’ajoute-t-on ?

C’est un processus simple en deux étapes. Voyons les étapes.

  • Définissez le nombre maximum de chances qu’a l’utilisateur de deviner le nombre.
  • Vérifiez si l’utilisateur a des chances ou non avant de demander l’entrée. Et terminez le jeu si l’utilisateur n’a plus aucune chance.

Le code supplémentaire 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 prochaine estimation.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Maintenant, essayez le jeu sans deviner le bon numéro. Vous devriez voir une sortie similaire comme suit.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

Hourra! nous avons ajouté une fonctionnalité supplémentaire à notre jeu. Ce n’est pas la fin cependant. Vous pouvez ajouter quelques fonctionnalités supplémentaires pour le rendre plus attrayant pour les utilisateurs. C’est ton heure maintenant. Allez-y et rendez-le plus beau :).

Conclusion

Nous avons créé un simple jeu de devinettes. Maintenant, c’est à votre tour de penser aux jeux auxquels vous jouiez quand vous étiez jeune. Faites-les en utilisant le langage de programmation et partagez-les avec vos amis. Nous pouvons numériser la plupart de nos jeux d’enfance.

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

Bon codage 🙂

Si vous ne pouvez pas en avoir assez des jeux de mots viraux, voici comment faire mieux à Wordle.

Vous avez apprécié la lecture de l’article ? Que diriez-vous de partager avec le monde ?