Implementierung des Python-Hangman-Spiels
Erstellen Sie ein Hangman-Spiel in Python und führen Sie es aus. Entdecken Sie die Überprüfung von Zeichensätzen, Zähler für verbleibende Versuche und das Ersetzen versteckter Wortfolgen.
Übersicht
Hangman ist ein Wortratespiel, das Entwickler im Umgang mit Benutzerzeichenfolgen, veränderbaren Zeichenlisten und Validierungsschleifen schult.
Die Engine wählt ein zufälliges Wort aus einer vordefinierten Liste aus. Es präsentiert dem Spieler Leerzeichen, die der Länge des Wortes entsprechen. Mit jedem Tipp wird der Buchstabe aufgedeckt oder die Anzahl der verbleibenden Fehler sinkt um eins.
In Python verwalten wir diesen Spielablauf mithilfe von Zeichenlisten anstelle von unveränderlichen Zeichenfolgen. Dies ermöglicht eine schnelle Enthüllung vor Ort und behält gleichzeitig den Überblick über zuvor erratene Zeichen, um Strafen zu vermeiden.
Code- und Ausführungsausgabe
Ein Standard-Befehlszeilen-Hangman-Spielskript mit simulierter Sitzungseingabe.
import random
def play_hangman():
word_bank = ["python", "compiler", "terminal", "debugger", "variable"]
word = random.choice(word_bank)
guessed_word = ["_"] * len(word)
guessed_letters = set()
attempts_remaining = 6
print("Welcome to Hangman!")
print(f"Word length: {' '.join(guessed_word)}")
# Mocking guess inputs for deterministic run
mock_guesses = ["e", "o", "a", "t", "r", "n", "i", "m", "p", "c", "l"]
for guess in mock_guesses:
if attempts_remaining <= 0 or "_" not in guessed_word:
break
print(f"\nGuessing letter: '{guess}'")
if guess in guessed_letters:
print("You already guessed that!")
continue
guessed_letters.add(guess)
if guess in word:
for idx, char in enumerate(word):
if char == guess:
guessed_word[idx] = guess
print(f"Correct! Word state: {' '.join(guessed_word)}")
else:
attempts_remaining -= 1
print(f"Incorrect! Attempts remaining: {attempts_remaining}")
if "_" not in guessed_word:
print(f"\nCongratulations! You guessed the word '{word}'!")
else:
print(f"\nGame Over! The word was '{word}'.")
# Seed random to ensure output matches the word 'compiler'
random.seed(35)
play_hangman()Welcome to Hangman!
Word length: _ _ _ _ _ _ _ _
Guessing letter: 'e'
Correct! Word state: _ _ _ _ _ _ e _
Guessing letter: 'o'
Correct! Word state: _ o _ _ _ _ e _
Guessing letter: 'a'
Incorrect! Attempts remaining: 5
Guessing letter: 't'
Incorrect! Attempts remaining: 4
Guessing letter: 'r'
Correct! Word state: _ o _ _ _ l e r
... (guesses continue)
Congratulations! You guessed the word 'compiler'!Schrittweise Umsetzung
- Erlernen bedingter String-Parsing-Algorithmen
- Statusverfolgung mithilfe von Sätzen für eindeutige Verlaufssuchen
- Erstellen interaktiver Terminal-Lernspiele
Häufig gestellte Fragen
Warum ein Set für erratene Buchstaben verwenden?
Die Überprüfung der Mitgliedschaft in Python-Sets dauert durchschnittlich O(1), während Listen O(n) Zeit benötigen. Dies sorgt für schnellere Suchvorgänge bei der Überprüfung früherer Vermutungen.
Wie kann ich größere Wortlisten laden?
Sie können Tausende von Wörtern laden, indem Sie mit der Python-Funktion „open()“ aus einer Textdatei lesen, oder sie dynamisch mithilfe eines Web-API-Anfrage-Frameworks abrufen.
Verwandte Themen
Führen Sie ein Terminal-Tic-Tac-Toe-Spiel in Python aus. Erfahren Sie mehr über die Verwaltung des Platinenstatus, das Schalten von Schaltvorgängen und die Prüfung von Zustandszuständen.
Python Stein-Papier-Schere-SpielErstellen Sie ein Stein-Schere-Papier-Spiel in Python. Beherrschen Sie zufällige Auswahlmöglichkeiten, die Validierung von Benutzereingaben und relationale Regelzuordnungen.