Juego de El ahorcado en Python

En este post te mostraré el juego del ahorcado programado en Python. Voy a poner la demostración y la explicación de cómo fue programado.

Ahorcado (hangman) en Python

Las características de El ahorcado en Python, también conocido como hangman, son:

  • Juega con 6 intentos
  • Coloca la letra y trata de adivinar la palabra antes de que se acaben los intentos
  • Distintas categorías de palabras
  • Gestión de bancos o grupos de palabras con archivos. Es decir, se tiene una base de datos de las palabras
  • Ajustes del juego, para agregar, eliminar o editar palabras y grupos de palabras
  • Selección del grupo de palabras para jugar. Al iniciar, se selecciona una palabra al azar.
  • Muestra las instrucciones para jugar al ahorcado

Veamos ahora el código, la demostración y explicación de este programa en Python.

Categorías o grupos de palabras

Como lo dije, el programa soporta que los bancos de palabras sean guardados en archivos de texto. Por lo tanto, se necesitan funciones para gestionar estas operaciones.

Los grupos de palabras están en un archivo de texto cuyo nombre está definido en una variable del programa. Para obtener los grupos tenemos la siguiente función:

Lo que hace es leer el archivo línea por línea, remover el salto de línea y agregar el elemento a la lista de grupos. Al final regresará la lista con todos los grupos que están en el archivo.

De manera similar, existe la función para que a partir de una lista de categorías se genere el archivo de texto:

Gestión de palabras para el ahorcado

Las palabras están en un archivo de texto cuyo nombre es el nombre del grupo o categoría, y en su contenido encontramos la lista de palabras. La función es similar:

Y también para guardarlas:

Desarrollo de juego

El juego básicamente consiste en lo siguiente, en donde se comprueba si ha ganado o perdido, además de que se le solicita la letra y se dibuja el muñeco dependiendo de los intentos restantes:

Ahora veamos con detalle.

Seleccionar categoría y palabra a adivinar

Al jugar se le muestra al usuario la lista de categorías existentes para que pueda elegir con cuál categoría y palabra juega al juego ahorcado o hangman programado en Python:

A partir de ello se selecciona una palabra aleatoria usando random.choice:

Ocultar palabra original

Una parte importante para ocultar las letras de la palabra es la siguiente, en donde para aprovechar las ventajas del lenguaje he usado un diccionario que tiene la letra y una variable que indica si la letra ha sido descubierta:

Por defecto, ninguna letra está adivinada. Pero el usuario puede intentar adivinar una letra, lo cual es manejado a continuación:

Como se puede observar, se lleva un registro de las letras que el usuario ha probado. Si vuelve a probar una letra que ya había escrito anteriormente, no pasa nada, se ignora.

Después, en la línea 10 se comprueba si la letra está en la palabra original. En caso de que no esté presente, se resta un intento o vida al jugador.

Finalmente en la línea 12 (lugar al que se llega si la letra está presente, es decir, si el jugador ha acertado) se marcan como adivinadas las letras que coincidan con lo que el usuario eligió.

Imprimir palabra

Además, tenemos otra función que imprime la palabra pero con la peculiaridad de que si la letra no está adivinada, imprime un guión (se puede cambiar por un asterisco o cualquier otra cosa).

Saber si ha ganado el juego de El ahorcado

Para saber si el usuario ha adivinado todas las letras de la palabra, se recorre la palabra compuesta y en caso de que no haya letras sin adivinar, se regresa True.

Dibujar ahorcado

Para terminar la explicación de las funciones veamos la función que dibuja al muñeco ahorcado en función de los intentos restantes. Queda así:

Poniendo todo junto

Así que el código completo queda como se ve a continuación. De este modo podemos jugar a hangman en Python. Recuerda que eres libre de modificar el código a tus necesidades.

Puedes probar el juego en línea aquí.

Si te ha gustado, te invito a leer más sobre Python o sobre videojuegos.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario