Implementación del juego Python Hangman

Crea y ejecuta un juego del Ahorcado en Python. Explore la verificación de conjuntos de caracteres, los contadores de intentos restantes y el reemplazo de cadenas de palabras ocultas.

Pruébelo en el editor

Descripción general

Hangman es un juego de adivinanzas de palabras que capacita a los desarrolladores en el manejo de cadenas de usuarios, listas de caracteres mutables y bucles de validación.

El motor selecciona una palabra aleatoria de una lista predefinida. Presenta al jugador espacios en blanco que coinciden con la longitud de la palabra. Con cada adivinanza, se revela la letra o el recuento de errores restantes se reduce en uno.

En Python, gestionamos este flujo de juego utilizando listas de personajes en lugar de cadenas inmutables, lo que permite revelaciones rápidas en el lugar y al mismo tiempo realizamos un seguimiento de los personajes adivinados previamente para evitar penalizaciones.

Código y salida de ejecución

Un script de línea de comandos estándar del juego Hangman con entrada de sesión 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()
Salida terminal
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'!

Implementación paso a paso

  • Aprender algoritmos de análisis de cadenas condicionales
  • Seguimiento de estado mediante conjuntos para búsquedas de historial únicas
  • Creación de juegos educativos para terminales interactivos.

Preguntas frecuentes

¿Por qué utilizar un juego de letras adivinadas?

La verificación de membresía en conjuntos de Python se ejecuta en un tiempo promedio O(1), mientras que las listas requieren un tiempo O(n). Esto garantiza búsquedas más rápidas al verificar conjeturas anteriores.

¿Cómo puedo cargar listas de palabras más grandes?

Puede cargar miles de palabras leyendo un archivo de texto usando la función `open()` de Python, o recuperarlas dinámicamente usando un marco de solicitudes de API web.

Temas relacionados