Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment créer un jeu de devinettes en Python ?

hébergement python
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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

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

Number Guessing Game

Le jeu est simple. L'utilisateur doit deviner le nombre généré aléatoirement qui se situe entre la plage de 1 à 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 discuté. Nous allons donc créer la version de base du jeu dans cette section. Et 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. 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.

Algorithme

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

  • Définir la plage des nombres. Par défaut, c'est 1-100 mais vous pouvez le changer comme vous préférez.
  • Générer 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.
  • Initialiser une variable à 0 pour compter le nombre total de chances que l'utilisateur a prises pour deviner le nombre correctement.
  • Écrire 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 !".
    • Brisez 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 en 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 avec le même sens.
    • Enfin, augmentez les chances que l'utilisateur a prises pour deviner.

Vous auriez eu 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 bien comprendre l'algorithme ci-dessus.

Il est temps de mettre la main sur le code. Entrez dans le code sans plus tarder.

Code

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

Si oui et terminé. 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.

Alors, voyons 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 à l'intérieur du __init__ afin qu'il puisse être utilisé dans toutes les méthodes de classe.
  • Nous pouvons facilement le modifier à un 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 il pourrait augmenter à l'avenir.
  • Enfin, nous avons utilisé la classe pour que chaque méthode liée au jeu y réside. Et il peut être facilement réutilisé dans d'autres applications.

Tous les points abordé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 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 tu as Python installé pour essayer le code ci-dessus.

Extra Feature

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

Comment l'ajoutons-nous ?

C'est 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 demander l'entrée. Et mettez fin au jeu si l'utilisateur n'a plus aucune chance.

Le code supplémentaire suivant complétera la fonctionnalité.

  • Ajoutez le code suivant à l'intérieur du __init__ méthode.
self.MAX_CHANCES = 10
  • Ajoutez la condition suivante avant que l'utilisateur n'entre dans la proposition suivante.
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 jeu de devinettes simple. Maintenant, c'est à votre tour de penser aux jeux auxquels vous jouiez quand vous étiez jeune. Faites-les en utilisant langage de programmation et partagez avec vos amis. Nous pouvons numériser la plupart de nos jeux d'enfance.

Ensuite, explorez IDE Python et compilateur en ligne pour exécuter du code Python.

Codage heureux 🙂

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

Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder