Les jeux de texte simples auxquels vous pouvez jouer en ligne de commande sont d'excellents projets pour débutants.
Êtes-vous d'humeur à jouer à un jeu que vous avez écrit vous-même? Eh bien, vous êtes au bon endroit. Hangman est un jeu de devinettes populaire et vous pouvez créer votre propre version avec un minimum d'effort.
Ce jeu est un artiste parfait, familier des jeux télévisés populaires et des séries telles que Wheel of Fortune, Letterbox et Party Time. Et Python est un langage pratique à utiliser pour créer un clone du pendu.
Comment jouer au jeu du pendu
Hangman est un jeu bien connu où un joueur pense à un mot et l'autre joueur essaie de le deviner en suggérant des lettres avec un nombre fixe de suppositions. Un joueur (dans ce cas le programme) présente une séquence de tirets représentant chaque lettre du mot, avec un caractère comme point de départ. L'autre joueur (ou utilisateur) devine les caractères présents dans le mot, un par un.
Si la lettre qu'ils devinent est dans le mot cible, le programme remplit le tiret avec le caractère. Sinon, le joueur perd une chance et le programme dessine un élément d'un bonhomme allumette comme pointage. Sur un total de sept chances, si l'utilisateur devine le mot correctement, il gagne la partie. Sinon, le programme termine son dessin d'un homme bâton.
Vous pouvez créer une liste de vos mots préférés ou en télécharger un comme La liste de Miieliestronk de plus de 58 000 mots anglais. Vous pouvez également explorer et créer d'autres jeux textuels amusants, tels qu'un jeu-questionnaire interactif ou un jeu d'aventure textuel en Python.
Comment construire le jeu du pendu
Le code source de ce jeu Hangman, ainsi que le fichier de liste de mots, est présent dans ce Référentiel GitHub et est libre d'utilisation.
Importez le aléatoire module et définir une fonction, get_random_word_from_wordlist(), pour choisir un mot au hasard dans le fichier. Le fichier texte peut contenir des noms communs ou des noms de lieux, d'animaux, de films, etc., selon vos préférences. Définissez une liste à l'aide des crochets rectangulaires([]).
Utilisez le avec instruction pour ouvrir le fichier et passer le mode comme 'r' indiquant le mode lecture seule. Celui-ci se charge automatiquement de fermer le fichier à la fin du bloc même en cas d'erreurs. Si vous visualisez le pendu_wordlist.txt fichier, vous remarquerez qu'il y a un mot présent sur chaque ligne, donc le fichier sépare chaque mot par un caractère de saut de ligne.
Passez le caractère d'échappement pour une nouvelle ligne (\n) au diviser() fonction pour stocker chaque mot dans la liste que vous avez définie précédemment. Utiliser choix aléatoire() pour renvoyer un mot aléatoire de la liste.
import random
defget_random_word_from_wordlist():
wordlist = []
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
word = random.choice(wordlist)
return word
Ensuite, définissez une fonction, get_some_letters(), qui prend le mot sélectionné au hasard comme paramètre. Cette fonction affichera une séquence de tirets vides (_) et quelques lettres à l'utilisateur.
Définir la liste vide des lettres pour stocker tous les caractères présents dans le mot. Utilisez le temp variable pour stocker une chaîne contenant le nombre de tirets vides équivalant à la longueur du mot. Utiliser liste() pour convertir la chaîne en une liste de caractères et parcourir celle-ci. Utiliser ajouter() pour ajouter le caractère à la liste s'il n'est pas déjà présent.
Utiliser choix aléatoire() pour choisir un caractère aléatoire que vous allez présenter à l'utilisateur avec les tirets vides. Itérer sur les caractères du mot en utilisant énumérer pour garder une trace de l'index de chaque caractère.
Lorsque vous trouvez le caractère sélectionné au hasard, remplacez le tiret vide par celui-ci. Utiliser rejoindre() pour unifier la liste de caractères en une chaîne complète et la renvoyer.
defget_some_letters(word):
letters = []
temp = '_' * len(word)
for char in list(word):
ifchar not in letters:
letters.append(char)
character = random.choice(letters)
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
return temp
Définir une fonction draw_hangman() qui prend le nombre de chances comme paramètre. Cette fonction fournit une figure du pendu. Comme le nombre de chances ne cesse de diminuer, les chances de survie diminuent également. Lorsqu'il est épuisé, la figure est complète et le jeu se termine.
defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")
Déclarer une fonction, start_hangman_game(), qui définit la logique principale du programme. Obtenez un mot au hasard en appelant le get_random_word_from_wordlist() fonction et obtenir la séquence à afficher à l'utilisateur à l'aide de la get_some_letters() fonction.
Fixez le nombre de chances à sept et initialisez une variable, trouvé, comme faux. Vous réglerez ceci sur vrai si la lettre devinée est présente dans le mot.
defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False
Déclarez une boucle qui se termine lorsque l'utilisateur devine le mot correctement ou à court de chances. Commencez le jeu en affichant la séquence, le nombre de lettres du mot et les chances restantes. Demandez à l'utilisateur de deviner une lettre et de la recevoir en utilisant le saisir() fonction. Validez l'entrée de l'utilisateur en vérifiant la longueur du caractère et s'il s'agit d'un alphabet.
whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue
Si l'entrée est valide, vérifier si le caractère est présent dans le mot et le remplacer en utilisant le processus vu précédemment et mettre à jour la valeur de found. Si le personnage n'est pas présent, diminuez le nombre de chances. S'il est présent, ramenez la valeur de found à la valeur initiale false.
S'il n'y a plus de tirets vides, affichez que l'utilisateur a gagné avec le nombre de suppositions prises, sinon affichez le graphique du pendu en fonction du nombre de chances restantes.
else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
if found:
found = False
else:
chances -= 1
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
print()
Définissez une fonction pour jouer au jeu du pendu. Si l'utilisateur entre oui, appelez le start_hangman_game() fonction sinon quittez le jeu avec le message approprié. En cas d'entrée invalide, demandez à l'utilisateur d'entrer à nouveau.
print(" Welcome to the Hangman Game ")
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
print("\n")
La sortie du jeu du pendu
Vous verrez la sortie suivante si vous gagnez le jeu :
Vous verrez le résultat suivant si vous perdez la partie :
Utiliser Python pour créer des jeux
Vous pouvez utiliser Python pour créer des jeux en ligne de commande ainsi que des jeux graphiques. Certains jeux en ligne de commande intéressants que vous pouvez créer à l'aide de Python incluent le jeu de devinettes, le jeu Magic 8 Ball, Mad Libs, Rock/Paper/Scissors et un jeu d'aventure textuelle.
Certains jeux graphiques amusants que vous pourriez créer avec python incluent Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. La meilleure partie de ces jeux est que vous pouvez les créer uniquement avec la bibliothèque standard Python.