Implementação do jogo Python Hangman
Crie e execute um jogo Hangman em Python. Explore a verificação de conjuntos de caracteres, contadores de tentativas restantes e substituição de strings de palavras ocultas.
Visão geral
Hangman é um jogo de adivinhação de palavras que treina desenvolvedores no manuseio de strings de usuário, listas de caracteres mutáveis e loops de validação.
O mecanismo escolhe uma palavra aleatória de uma lista predefinida. Apresenta ao jogador espaços em branco correspondentes ao comprimento da palavra. A cada palpite, a letra é revelada ou a contagem de erros restantes cai em um.
Em Python, gerenciamos o fluxo do jogo usando listas de caracteres em vez de strings imutáveis, permitindo revelações rápidas no local enquanto monitoramos os caracteres adivinhados anteriormente para evitar penalidades.
Saída de código e execução
Um script de jogo Hangman de linha de comando padrão com entrada de sessão simulada.
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'!Implementação passo a passo
- Aprendendo algoritmos de análise de strings condicionais
- Rastreamento de estado usando conjuntos para pesquisas de histórico exclusivas
- Construindo jogos educacionais terminais interativos
Perguntas frequentes
Por que usar um conjunto para letras adivinhadas?
A verificação da associação em conjuntos Python é executada em tempo médio O(1), enquanto as listas requerem tempo O(n). Isso garante pesquisas mais rápidas ao verificar suposições anteriores.
Como posso carregar listas de palavras maiores?
Você pode carregar milhares de palavras lendo um arquivo de texto usando a função `open()` do Python ou buscá-las dinamicamente usando uma estrutura de solicitações de API da web.
Tópicos Relacionados
Execute um jogo terminal Tic-Tac-Toe em Python. Aprenda o gerenciamento do estado da placa, alterne as curvas e ganhe verificações de condições.
Jogo Python Rock Paper ScissorsCrie um jogo Pedra-Papel-Tesoura em Python. Domine escolhas aleatórias, validação de entradas do usuário e mapeamentos de regras relacionais.