Einfache Textspiele, die Sie über die Befehlszeile spielen können, sind großartige Projekte für Anfänger.

Haben Sie Lust, ein Spiel zu spielen, das Sie selbst geschrieben haben? Dann sind Sie hier genau richtig. Hangman ist ein beliebtes Wort-Ratespiel und Sie können mit minimalem Aufwand Ihre eigene Version erstellen.

Dieses Spiel ist ein perfekter Entertainer, bekannt aus beliebten TV-Spielshows und Serien wie Wheel of Fortune, Letterbox und Party Time. Und Python ist eine praktische Sprache zum Erstellen eines Hangman-Klons.

Wie man das Hangman-Spiel spielt

Galgenmännchen ist ein bekanntes Spiel, bei dem sich ein Spieler ein Wort ausdenkt und der andere Spieler versucht, es zu erraten, indem er Buchstaben mit einer festgelegten Anzahl von Vermutungen vorschlägt. Ein Spieler (in diesem Fall das Programm) präsentiert eine Folge von Strichen, die jeden Buchstaben des Wortes darstellen, zusammen mit einem Zeichen als Ausgangspunkt. Der andere Spieler (oder Benutzer) errät nacheinander die im Wort vorkommenden Zeichen.

Wenn der erratene Buchstabe im Zielwort vorkommt, füllt das Programm den Bindestrich mit dem Zeichen. Andernfalls verliert der Spieler eine Chance und das Programm zieht ein Element eines Strichmännchens als Ergebnis. Bei insgesamt sieben Chancen gewinnt der Benutzer das Spiel, wenn er das Wort richtig errät. Wenn nicht, beendet das Programm die Zeichnung eines Strichmännchens.

Sie können eine Liste Ihrer Lieblingswörter erstellen oder eines herunterladen Mieliestronks Liste mit mehr als 58.000 englischen Wörtern. Sie können auch andere unterhaltsame textbasierte Spiele erkunden und erstellen, z interaktives Quizspiel oder ein textbasiertes Abenteuerspiel in Python.

So bauen Sie das Hangman-Spiel

Der Quellcode dieses Hangman-Spiels ist zusammen mit der Wortlistendatei darin enthalten GitHub-Repository und ist kostenlos nutzbar.

Importieren Sie die willkürlich Modul und definieren eine Funktion, get_random_word_from_wordlist(), um ein zufälliges Wort aus der Datei auszuwählen. Die Textdatei kann je nach Wunsch allgemeine Substantive oder Namen von Orten, Tieren, Filmen und mehr enthalten. Definieren Sie eine Liste mit den rechteckigen Klammern([]).

Benutzen Sie die mit Anweisung, um die Datei zu öffnen und den Modus als zu übergeben 'R' Zeigt den schreibgeschützten Modus an. Dadurch wird auch im Fehlerfall automatisch dafür gesorgt, dass die Datei am Ende des Blocks geschlossen wird. Wenn Sie sich das ansehen hangman_wordlist.txt In der Datei werden Sie feststellen, dass in jeder Zeile ein Wort vorhanden ist. Daher trennt die Datei jedes Wort durch ein Zeilenumbruchzeichen.

Übergeben Sie das Escape-Zeichen für eine neue Zeile (\N) zum Teilt() Funktion, um jedes Wort in der zuvor definierten Liste zu speichern. Verwenden random.choice() um ein zufälliges Wort aus der Liste zurückzugeben.

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

Als nächstes definieren Sie eine Funktion, get_some_letters(), das das zufällig ausgewählte Wort als Parameter verwendet. Diese Funktion zeigt eine Folge leerer Striche an (_) und einige Briefe an den Benutzer.

Leere Liste definieren Briefe um alle im Wort vorhandenen Zeichen zu speichern. Benutzen Sie die Temp Variable zum Speichern einer Zeichenfolge, die die Anzahl der Leerstriche enthält, die der Länge des Wortes entsprechen. Verwenden Liste() um die Zeichenfolge in eine Liste von Zeichen umzuwandeln und darüber zu iterieren. Verwenden append() um das Zeichen zur Liste hinzuzufügen, falls es noch nicht vorhanden ist.

Verwenden random.choice() um ein zufälliges Zeichen auszuwählen, das Sie dem Benutzer zusammen mit den leeren Bindestrichen präsentieren möchten. Iterieren Sie die Zeichen des Wortes mit aufzählen um den Index jedes Zeichens im Auge zu behalten.

Wenn Sie das zufällig ausgewählte Zeichen gefunden haben, ersetzen Sie den leeren Bindestrich durch dieses. Verwenden verbinden() um die Zeichenliste zu einer vollständigen Zeichenfolge zu vereinheitlichen und zurückzugeben.

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

Definieren Sie eine Funktion draw_hangman() das nimmt die Anzahl der Chancen als Parameter. Diese Funktion bietet eine Figur des hängenden Mannes. Da die Chancen immer kleiner werden, sinken auch die Überlebenschancen. Wenn sie erschöpft ist, ist die Figur fertig und das Spiel endet.

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("| ")

Deklarieren Sie eine Funktion, start_hangman_game(), das die Hauptlogik des Programms definiert. Erhalten Sie ein zufälliges Wort, indem Sie anrufen get_random_word_from_wordlist() Funktion und rufen Sie die Sequenz ab, die dem Benutzer mit der angezeigt werden soll get_some_letters() Funktion.

Setzen Sie die Anzahl der Chancen auf sieben und initialisieren Sie eine Variable. gefunden, als falsch. Sie werden dies auf einstellen WAHR wenn der erratene Buchstabe im Wort vorhanden ist.

defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False

Deklarieren Sie eine Schleife, die endet, wenn der Benutzer das Wort richtig errät oder keine Chancen mehr hat. Beginnen Sie das Spiel, indem Sie die Reihenfolge, die Anzahl der Buchstaben im Wort und die verbleibenden Chancen anzeigen. Bitten Sie den Benutzer, einen Buchstaben zu erraten und ihn mit dem zu erhalten Eingang() Funktion. Validieren Sie die Benutzereingabe, indem Sie die Länge des Zeichens prüfen und prüfen, ob es sich um ein Alphabet handelt.

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

Wenn die Eingabe gültig ist, prüfen Sie, ob das Zeichen im Wort vorhanden ist, ersetzen Sie es mithilfe des zuvor beschriebenen Prozesses und aktualisieren Sie den Wert von „found“. Wenn der Charakter nicht vorhanden ist, verringern Sie die Anzahl der Chancen. Falls vorhanden, wird der Wert von „found“ wieder auf den Anfangswert „false“ zurückgesetzt.

Wenn keine leeren Striche mehr vorhanden sind, wird angezeigt, dass der Benutzer gewonnen hat, zusammen mit der Anzahl der getroffenen Vermutungen. Andernfalls wird die Henkergrafik entsprechend der Anzahl der verbleibenden Chancen angezeigt.

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()

Definieren Sie eine Funktion zum Spielen des Hangman-Spiels. Wenn der Benutzer „Ja“ eingibt, rufen Sie den auf start_hangman_game() Andernfalls beenden Sie das Spiel mit der entsprechenden Meldung. Im Falle einer ungültigen Eingabe bitten Sie den Benutzer um eine erneute Eingabe.

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")

Die Ausgabe des Hangman-Spiels

Wenn Sie das Spiel gewinnen, sehen Sie die folgende Ausgabe:

Wenn Sie das Spiel verlieren, wird die folgende Ausgabe angezeigt:

Verwenden Sie Python zum Erstellen von Spielen

Mit Python können Sie sowohl Befehlszeilenspiele als auch grafische Spiele erstellen. Zu den interessanten Befehlszeilenspielen, die Sie mit Python erstellen können, gehören das Zahlenratespiel, das Magic 8 Ball-Spiel, Mad Libs, Rock/Paper/Scissors und ein Text-Adventure-Spiel.

Einige unterhaltsame Grafikspiele, die Sie mit Python erstellen könnten, sind Tic Tac Toe, Maze, Snake, Pacman, Memory und Life. Das Beste an diesen Spielen ist, dass Sie sie nur mit der Python-Standardbibliothek erstellen können.