Implementazione del gioco Python Hangman
Costruisci ed esegui un gioco dell'Impiccato in Python. Esplora il controllo dei set di caratteri, i contatori dei tentativi rimanenti e la sostituzione delle stringhe di parole nascoste.
Panoramica
Hangman è un gioco di indovinare le parole che addestra gli sviluppatori a gestire stringhe utente, elenchi di caratteri mutabili e cicli di convalida.
Il motore sceglie una parola casuale da un elenco predefinito. Presenta al giocatore spazi vuoti corrispondenti alla lunghezza della parola. Ad ogni tentativo, la lettera viene rivelata oppure il conteggio degli errori rimanenti diminuisce di uno.
In Python, gestiamo questo flusso di gioco utilizzando elenchi di caratteri anziché stringhe immutabili, consentendo rivelazioni rapide sul posto e tenendo traccia dei caratteri precedentemente indovinati per evitare penalità.
Codice e output di esecuzione
Uno script di gioco Hangman standard da riga di comando con input di sessione simulata.
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'!Implementazione passo dopo passo
- Apprendimento degli algoritmi di analisi condizionale delle stringhe
- Monitoraggio dello stato utilizzando set per ricerche storiche uniche
- Costruire giochi educativi terminali interattivi
Domande frequenti
Perché utilizzare un set per le lettere indovinate?
Il controllo dell'appartenenza ai set Python viene eseguito in un tempo medio O(1), mentre gli elenchi richiedono un tempo O(n). Ciò garantisce ricerche più rapide durante la verifica delle ipotesi precedenti.
Come posso caricare elenchi di parole più grandi?
Puoi caricare migliaia di parole leggendo da un file di testo utilizzando la funzione `open()` di Python o recuperarle dinamicamente utilizzando un framework di richieste API web.
Argomenti correlati
Esegui un gioco Tic-Tac-Toe da terminale in Python. Impara la gestione dello stato del tabellone, il cambio di turno e i controlli delle condizioni di vittoria.
Gioco Python Sasso Carta ForbiciCrea un gioco Sasso-Carta-Forbici in Python. Padroneggia le scelte casuali, la convalida degli input dell'utente e la mappatura delle regole relazionali.