Hangman conflict ein wirklich lustiges Spiel in unserem Zuhause. Wir gingen einen Stift und Papier und wählten abwechselnd Wörter aus, damit der andere erraten konnte. Heute wird es in Klassenzimmer verwendet, um Kindern dabei zu helfen, ihre Schreibweisen zu üben, die strategische Entscheidungsfindung zu verstehen, indem es zuerst Vokale auswählt und mögliche Wörter aus Hinweisen aus dem Brainstorming ausgewählt wird.
In diesem Artikel werden wir das Hangman -Spiel durchlaufen, indem wir es in Python implementieren. Dies ist ein anfängerfreundliches Projekt, bei dem wir die Grundlagen der Python-Sprache lernen, z. B. Variablen, häufig verwendete Funktionen, Schleifen und bedingte Aussagen.
Das Projekt verstehen
Erstens werden wir das Spiel verstehen und uns in die Tiefe eingehen, wie unser Code funktionieren soll.
In einem typischen 2-Spieler-Hangman-Spiel wählt Participant 1 ein Wort, das es vor Spieler 2 versteckt und Blankchen erzeugt, die der Anzahl der Buchstaben in dem Wort, das er für das Erraten ausgewählt hat, entspricht. Spieler 2 muss das Wort erraten, indem er jeweils einen Buchstaben erraten. Spieler 2 hat zu Beginn eine definierte Anzahl von Leben, und mit jeder falschen Vermutung von Buchstaben verlieren sie ein Leben (bis zu dem Punkt, an dem der Mann gehängt ist). Mit jeder richtigen Vermutung bleiben das Leben das gleiche wie zuvor. Wenn Spieler 2 ihr ganzes Leben verliert, ohne das Wort zu erraten, ist das Spiel vorbei und sie verlieren. Wenn sie es schaffen, das Wort zu erraten, gewinnen sie das Spiel. Dies ist der Umriss des Spiels in seinem traditionellen Sinne.
In diesem Projekt ist der Pc Participant 1 und generiert das Wort, um zu erraten, während wir als Benutzer Participant 2 sein werden.

Das Zeichnen eines Flussdiagramms und die Definition jedes Schritts hilft dabei, unseren Denkprozess in Code zu verwandeln. Daher ist es immer eine gute Praxis, einen zu zeichnen. Beginnen wir nun mit der Codierung des Issues!
Schritt 1: Liste der Wörter und des zufälligen Moduls
Der erste Schritt in diesem Projekt besteht darin, dass der Pc ein zufälliges Wort auswählt, das der Benutzer erraten muss. Zu diesem Zweck benötigen wir sowohl eine Liste von Wörtern, aus denen der Pc ein Wort ausweichen soll, das zu erraten ist, als auch eine Python -Funktion, die als zufällig bezeichnet wird und dieses Wort zufällig aus der angegebenen Liste auswählt.
Um die Liste zu generieren, habe ich die 100 häufigsten Substantive in englischer Sprache gegoogelt und a gefunden Liste. Ich habe diese Wörter verwendet und eine Python -Liste erstellt, mit der sie in diesem Projekt verwendet werden soll.
Wie der Title schon sagt, a Python -Liste ist ein Datentyp, der in sich selbst eine Sammlung von Elementen speichert. Eine Liste von Farben wird in Python als definiert colours = ("purple", "yellow", "inexperienced", "blue", "pink"). Sie können die Listensyntax und zusätzliche Informationen von der offiziellen Seite von Python -Offizieller überprüfen Liste.
word_list = (
"time",
"yr",
"individuals",
"method",
"day",
"man",
"factor",
...
)
Sie können auf die Projektdateien von meinem zugreifen Github Repository. hangman_words.py ist die Python -Datei, die die Liste der Wörter enthält, aus denen der Pc nach dem Zufallsprinzip ein Wort für das Spiel auswählt.
Sobald unsere Liste erstellt wurde, benötigen wir den Pc, um ein zufälliges Wort aus der angegebenen Liste der Wörter auszuwählen word_list. Python hat ein Modul, insbesondere für diesen Zweck namens „zufällig“. Wir werden das Modul importieren und es verwenden, damit der Pc zufällig ein Wort auswählen kann word_to_guess Aus der Liste words_list. Sie können die drucken word_to_guess Während Sie das Projekt codieren, um das Verständnis zu verbessern, und es beim Spielen mit dem Pc aussprechen!
import random
word_to_guess = random.selection(word_list)
print(word_to_guess)
Weitere Informationen zur random.selection() Funktion, klicken Sie Hier.
Schritt 2: Erzeugen von Rohlingen
Der nächste Schritt besteht darin, Rohlinge zu erzeugen, die der Anzahl der Buchstaben in der Buchstaben entspricht word_to_guess Damit der Benutzer eine Vorstellung von der Anzahl der Buchstaben in dem Wort erhält, das er erraten muss. Dafür werden wir eine Variable definieren, die genannt wird blanks die als Container für die ungehörten Buchstaben des Wortes fungieren. Es enthält die Anzahl der „_“ entspricht der Anzahl der Buchstaben in der Buchstaben word_to_guess.
Berechnung der Anzahl der Buchstaben in der word_to_guess das wurde zufällig vom Pc aus dem ausgewählt words_listWir werden die Python -Funktion verwenden len()Das berechnet die Länge einer Zeichenfolge. Weitere Informationen zu dieser eingebauten Funktion können damit zugegriffen werden Hyperlink.
blanks = ""
word_length = len(word_to_guess)
Wie wir jetzt die Anzahl der Buchstaben in kennen word_to_guessWir werden diese Nummer verwenden, um eine gleiche Anzahl von „_“ in der Variablen hinzuzufügen blanks. Zu diesem Zweck werden wir die verwenden for Loop, eine Python -Funktionalität, die es uns ermöglicht, in einer Sequenz über Elemente zu iterieren, in unserem Fall die Zeichenfolge, die in der Variablen gespeichert ist word_to_guess. Klicken Hier mehr darüber erfahren for Schleife und seine Syntax.
for i in vary(word_length):
blanks = blanks + " _"
print("Phrase to guess: " + blanks)
Der obige Codeblock wird über die Anzahl der Buchstaben in der Buchstaben iteriert word_to_guess String und generieren Sie für jeden Buchstaben einen Leerzeichen. Es wird so viele ausdrucken wie die Anzahl der Buchstaben, jede leere als Platzhalter für den Buchstaben des Wortes zu raten. Für das Wort „Zeit“ ist der auf dem Bildschirm gedruckte Ausgang: lautet:
Wort zu erraten: _ _ _ _
Schritt 3: fordert den Benutzer dazu auf, einen Transient zu erraten
Jetzt beginnt das Spiel tatsächlich! Der Pc hat ein Wort ausgewählt und leere Platzhalter für die Buchstaben in diesem Wort generiert. Jetzt ist die Zeit für den Benutzer, das Wort zu erraten, indem er jeweils einen Buchstaben erraten.
Um den Benutzer um einen Transient zu fragen, werden wir die verwenden enter Funktion in Python und speichern Sie es in der Variablen guess:
guess = enter("Guess a letter").decrease()
Klicken Hier Um mehr über die integrierte Python-integrierte Funktion zu erfahren enter().
Schritt 4: Überprüfen Sie, ob sich der Transient im Wort befindet
Sobald der Benutzer einen Transient erraten hat, werden wir überprüfen, ob der Benutzer ihn richtig erraten hat, und prüfen, ob er sich in der befindet word_to_guess.
Dazu werden wir a verwenden for Schleife. Darüber hinaus werden wir auch eine andere Variable erstellen, your_worddie mit den ersetztem Buchstaben und einer leeren Liste namens aktualisiert wird,letters_guessed Dies speichert die vom Benutzer ordnungsgemäß erratenen Buchstaben (dies wird nützlich sein, wie wir später sehen werden).
Wenn der Pc beispielsweise das Wort „Käsekuchen“ ausgewählt hat, im Laufe des Spiels und der Benutzer die Buchstaben „C“, „E“ und „A“ erraten hat, ist dies beides, was beides ist your_word Und letters_guessed würde aussehen wie:
your_word = c_ee_eca_e
letters_gued = („c“, „e“, „a“)
letters_guessed = ()
your_word = ""
for letter in word_to_guess:
if letter == guess:
your_word = your_word + letter
letters_guessed.append(guess)
elif letter in letters_guessed:
your_word = your_word + letter
else:
your_word = your_word + "_"
Additionally im Grunde was die obige Schleife tut, ist, dass es durch die iteriert word_to_guess ein Buchstaben nach dem anderen und überprüft:
- Wenn der vom Benutzer erratene Transient erraten
guessist in derword_to_guessDer Code aktualisiert die Variableyour_wordum den Transient hinzuzufügen, der an seinem angemessenen Ort erraten wird. Wir müssen verstehen, dass in Python Strings tatsächlich eine Abfolge von Zeichen sind und viele Listenfunktionen auch für Zeichenfolgen anwendbar sind. Darüber hinaus werden wir diesen Buchstaben auch der Liste korrekt addierenletters_guessed. - Wenn der Transient, den der Benutzer erraten hat,
guessist in derletters_guessedDies bedeutetletters_guessedaber muss nur den Transient in die hinzufügenyour_wordan seinem geeigneten Ort. - Ansonsten, wenn der vom Benutzer erratene Transient nicht in der ist
word_to_guessund wird daher nicht in der seinletters_guessedWir werden einfach Blanks erzeugen.
Wenn der obige Code etwas überwältigend erscheint, können Sie einfach die oben genannten für die Schleife ausführen, während Sie die Variablen definieren und jede der Variablen drucken: word_to_guessAnwesend guessAnwesend guessed_lettersUnd your_word und drucken die Variablen, in denen sie geändert werden.

Schritt 5: Erstellen Sie die whilanside Schleife, die bis zum Ende des Spiels läuft
Lassen Sie uns auf das von uns erstellte Flussdiagramm zurückgreifen, um das Projekt zu verstehen. Um dieses Projekt zu codieren, müssen wir die folgenden Punkte berücksichtigen:
- Der Benutzer hat zu Beginn eine definierte Anzahl von Leben
- Für jeden Buchstaben wird das Leben um 1 reduziert
- Wenn dem Benutzer das Leben ausgeht, verliert der Benutzer und das Spiel ist vorbei
- Wenn der Benutzer Leben übrig hat, bittet der Pc den Benutzer, einen anderen Transient zu erraten
- Für jeden Buchstaben bleiben das Leben unverändert und eine Lücke wird durch einen Buchstaben im Platzhalter ersetzt
blanks- Wenn die Variable
your_wordist alles gefüllt, der Benutzer gewinnt das Spiel und das Spiel ist vorbei - Wenn die Variable
<code>your_wordHat leere Leerzeichen übrig, dann wird der Pc den Benutzer erneut auffordert, den nächsten Transient zu erraten
- Wenn die Variable
Da haben wir das geschaffen for Zuvor ist die Schleife, die den ersetztem Transient richtet, jetzt die Zeit, die Idee des Lebens einzubeziehen und ihn zu reduzieren, wenn der Benutzer einen Transient falsch erraten hat.
Lassen Sie uns die Anzahl der Leben für den Benutzer mit der Variablen definieren number_of_lives. Der Benutzer hat 6 Chancen, den falschen Buchstaben vorzuschlagen, um das Wort zu erraten.
number_of_lives = 6
In Anbetracht der oben genannten Punkte benötigen wir nun auch eine Variable oder eine Bedingung, die uns aufweist, den Benutzer zu bitten, zu erraten, wann das Spiel vorbei ist. Lassen Sie es uns mit Hilfe einer booleschen Variablen codieren.
Einfach angeben, ein Boolescher ist ein Datenatyp in Python, der entweder True oder False speichert. Wir werden diese boolesche Variable verwenden, um das Spiel fortzusetzen, während es falsch ist und umgekehrt. Anfänglich, während das Spiel beginnt, wird diese Variable sein Falsewas bedeutet, dass das Spiel noch nicht vorbei ist.
game_over = False
Jetzt werden wir eine vorstellen whereas Schleifen Sie mit der Bedingung, dass es so lange läuft, wie das Spiel nicht vorbei ist, und wir werden die oben genannten Bedingungen in dieser Schleife enthalten. Schauen Sie sich mehr über die whereas Schleife aus der offiziellen Dokumentation von Python Hier.
whereas not recreation over:
print("nYou have ", number_of_lives, " lives remaining!")
guess = enter("Guess a letter: ").decrease()
your_word = ""
for letter in word_to_guess:
if letter == guess:
your_word = your_word + letter
letters_guessed.append(guess)
elif letter in letters_guessed:
your_word = your_word + letter
else:
your_word = your_word + "_"
print("Phrase to guess: ", your_word)
Im obigen Code haben wir sowohl die Eingabeanweisung als auch die Druckanweisung hinzugefügt, die die bisher gemessenen Buchstaben nach ihrer Place in der Ausgabe ausgibt word_to_guess.
Schritt 6: Umgangssituationen
Der letzte Schritt besteht darin, verschiedene Umstände zu bewältigen. Was passiert, wenn der Buchstabe, den der Benutzer erraten hat, vom Benutzer bereits vorgeschlagen wurde oder der Transient nicht im Wort ist? Was ist, wenn alle Briefe erraten wurden und es keine Blankchen mehr gibt your_word? Dies würde bedeuten, dass der Benutzer das Wort erraten und so gewonnen hat.
Wir werden diese Scenario im Code mit den folgenden Zeilen hinzufügen:
if guess in letters_guessed:
print(f"nYou've already guessed {guess}")
if "_" not in your_word:
game_over = True
print("nYou have guessed the phrase! YOU WIN!")

Darüber hinaus, wenn der vom Benutzer erratene Transient nicht in der ist word_to_guessDie Vermutung des Benutzers ist falsch, dann wird ihr Leben um 1 reduziert, und wir werden den Benutzer darüber informieren, dass sein erratener Transient nicht im Wort ist. Wenn das Leben durch eine falsche Vermutung das Leben des Benutzers beendet, dann ist unsere booleale Variable game_over wird als True Und das Spiel endet, wobei der Benutzer das Spiel verliert.
if guess not in word_to_guess:
number_of_lives -= 1
print(f"nYou guessed {guess}, that is not within the phrase. You lose a life.")
if number_of_lives == 0:
game_over = True
print(f"nIT WAS {word_to_guess}! YOU LOSE!")
Denken Sie daran, die oben genannten Codeblöcke in die hinzuzufügen whereas Schleife, die läuft, bis das Spiel noch nicht vorbei ist. Ein vollständiger Code zusammen mit wertvollen Kommentaren kann über dieses Github -Repository für ein besseres Verständnis zugegriffen werden.
Abschluss
Das obige Codierungsprojekt wurde mit den Grundlagen der Python -Sprache durchgeführt. Wir sind auf einige eingebaute Funktionen gestoßen print()Und enter()Wir haben die benutzt random Modul, um zufällige Wörter zu erraten und zu verwenden for Und whereas Schleifen in verschiedenen Iterationen nach Bedarf. Wir haben auch die bedingte durchgesehen ifAnwesend elif Und else Aussagen. Dies sind alle grundlegenden Werkzeuge, die jeder Anfänger kennen muss, bevor er in eine komplexe Codierung springen. Wir hätten auch Funktionen in diesem Programm definieren und aufgerufen haben, aber dies sollte eine anfängerfreundliche Einführung in die Python-Sprache sein. Wenn Sie ein Profi in Python sind, können Sie verschiedene andere Möglichkeiten teilen, die wir uns an dieses Projekt hätten wenden können!
