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 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 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.