Los juegos de texto simples que puedes jugar en la línea de comandos son excelentes proyectos para principiantes.

¿Estás de humor para jugar un juego que has escrito tú mismo? Bueno, estás en el lugar correcto. Hangman es un popular juego de adivinanzas y puedes crear tu propia versión con un mínimo esfuerzo.

Este juego es un entretenimiento perfecto, familiar de los populares programas de televisión y series como Wheel of Fortune, Letterbox y Party Time. Y Python es un lenguaje conveniente para usar para construir un clon de Hangman.

Cómo jugar el juego del ahorcado

Hangman es un juego muy conocido en el que un jugador piensa en una palabra y el otro jugador intenta adivinarla sugiriendo letras con un número fijo de intentos. Un jugador (en este caso el programa) presenta una secuencia de guiones que representan cada letra de la palabra, junto con un carácter como punto de partida. El otro jugador (o usuario) adivina los caracteres presentes en la palabra, uno por uno.

Si la letra que adivinan está en la palabra objetivo, el programa llena el guión con el carácter. De lo contrario, el jugador pierde una oportunidad y el programa dibuja un elemento de una figura de palo como un conteo. En un total de siete oportunidades, si el usuario adivina la palabra correctamente, gana el juego. Si no, el programa completa su dibujo de un hombre palo.

instagram viewer

Puedes crear una lista de tus palabras favoritas o descargar una como La lista de Mieliestrok de más de 58.000 palabras en inglés. También puede explorar y crear otros juegos divertidos basados ​​en texto, como un juego de preguntas interactivo o un juego de aventuras basado en texto en Python.

Cómo construir el juego del ahorcado

El código fuente de este juego del ahorcado, junto con el archivo de lista de palabras, está presente en este repositorio GitHub y es de uso gratuito.

Importar el aleatorio módulo y definir una función, get_random_word_from_wordlist(), para elegir una palabra aleatoria del archivo. El archivo de texto puede contener sustantivos comunes o nombres de lugares, animales, películas y más según su gusto. Defina una lista usando los corchetes rectangulares ([]).

Utilizar el con declaración para abrir el archivo y pasar el modo como 'r' indicando el modo de sólo lectura. Esto automáticamente se encarga de cerrar el archivo al final del bloque incluso en casos de errores. Si ves el ahorcado_wordlist.txt notará que hay una palabra presente en cada línea, por lo que el archivo separa cada palabra con un carácter de nueva línea.

Pase el carácter de escape para una nueva línea (\norte) hacia dividir() función para almacenar cada palabra en la lista que definió anteriormente. Usar elección aleatoria() para devolver una palabra aleatoria de la lista.

import random
 
defget_random_word_from_wordlist():
wordlist = []
 
with open("hangman_wordlist.txt", 'r') as file:
wordlist = file.read().split("\n")
 
word = random.choice(wordlist)
return word

A continuación, defina una función, obtener_algunas_letras(), que toma como parámetro la palabra seleccionada aleatoriamente. Esta función mostrará una secuencia de guiones en blanco (_) y algunas cartas al usuario.

Definir lista vacía letras para almacenar todos los caracteres presentes en la palabra. Utilizar el temperatura variable para almacenar una cadena que contiene el número de guiones en blanco que equivalen a la longitud de la palabra. Usar lista() para convertir la cadena en una lista de caracteres e iterar sobre ella. Usar adjuntar() para agregar el personaje a la lista si aún no está presente.

Usar elección aleatoria() para elegir un carácter aleatorio que presentará al usuario junto con los guiones en blanco. Iterar sobre los caracteres de la palabra usando enumerar para mantener un registro del índice de cada carácter.

Cuando encuentre el carácter seleccionado al azar, reemplace el guión en blanco con él. Usar unirse() para unificar la lista de caracteres en una cadena completa y devolverla.

defget_some_letters(word):
letters = []
temp = '_' * len(word)
 
for char in list(word):
ifchar not in letters:
letters.append(char)
 
character = random.choice(letters)
 
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
 
return temp

Definir una función dibujar_ahorcado() que toma el número de chances como parámetro. Esta función proporciona una figura del hombre colgado. A medida que el número de posibilidades sigue disminuyendo, también lo hacen las posibilidades de supervivencia. Cuando se agota, la figura está completa y el juego termina.

defdraw_hangman(chances):
if chances == 6:
print("________ ")
print("| | ")
print("| ")
print("| ")
print("| ")
print("| ")
elif chances == 5:
print("________ ")
print("| | ")
print("| 0 ")
print("| ")
print("| ")
print("| ")
elif chances == 4:
print("________ ")
print("| | ")
print("| 0 ")
print("| / ")
print("| ")
print("| ")
elif chances == 3:
print("________ ")
print("| | ")
print("| 0 ")
print("| /| ")
print("| ")
print("| ")
elif chances == 2:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| ")
print("| ")
elif chances == 1:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / ")
print("| ")
elif chances == 0:
print("________ ")
print("| | ")
print("| 0 ")
print("| /|\ ")
print("| / \ ")
print("| ")

Declarar una función, start_hangman_game(), que define la lógica principal del programa. Obtén una palabra al azar llamando al get_random_word_from_wordlist() función y obtenga la secuencia para mostrar al usuario usando el obtener_algunas_letras() función.

Establezca el número de posibilidades en siete e inicialice una variable, encontró, como falso. Establecerás esto en verdadero si la letra adivinada está presente en la palabra.

defstart_hangman_game():
word = get_random_word_from_wordlist()
temp = get_some_letters(word)
chances = 7
found = False

Declara un ciclo que termina cuando el usuario adivina la palabra correctamente o se queda sin oportunidades. Comience el juego mostrando la secuencia, el número de letras de la palabra y las posibilidades que quedan. Pídele al usuario que adivine una letra y recíbela usando el aporte() función. Valide la entrada del usuario comprobando la longitud del carácter y si es un alfabeto.

whileTrue:
if chances == 0:
print(f"Sorry! You Lost, the word was: {word}")
print("Better luck next time")
break
 
print(" Guess the word ")
print(temp, end='')
print(f"\t(word has {len(word)} letters)")
print(f"Chances left: {chances}")
character = input("Enter the character you think the word may have: ")
 
iflen(character) > 1 ornotcharacter.isalpha():
print("Please enter a single alphabet only")
continue

Si la entrada es válida, verifique si el carácter está presente en la palabra y reemplácelo usando el proceso visto anteriormente y actualice el valor de encontrado. Si el personaje no está presente, disminuya el número de posibilidades. Si está presente, cambie el valor de encontrado al valor inicial falso.

Si no quedan guiones en blanco, muestre que el usuario ganó junto con la cantidad de intentos realizados; de lo contrario, muestre el gráfico del ahorcado de acuerdo con la cantidad de oportunidades restantes.

else:
for num, char in enumerate(list(word)):
ifchar == character:
templist = list(temp)
templist[num] = char
temp = ''.join(templist)
found = True
 
if found:
found = False
else:
chances -= 1
 
if'_' not in temp:
print(f"\nYou Won! The word was: {word}")
print(f"You got it in {7 - chances} guess")
break
else:
draw_hangman(chances)
 
print()

Defina una función para jugar el juego del ahorcado. Si el usuario ingresa sí, llame al start_hangman_game() de lo contrario, salga del juego con el mensaje apropiado. En caso de entrada inválida, solicite al usuario que ingrese nuevamente.

print(" Welcome to the Hangman Game ")
 
whileTrue:
choice = input("Do you wanna play hangman? (yes/no): ")
 
if'yes'in choice.lower():
start_hangman_game()
elif'no'in choice.lower():
print('Quitting the game...')
break
else:
print("Please enter a valid choice.")
 
print("\n")

El resultado del juego del ahorcado

Verás el siguiente resultado si ganas el juego:

Verás el siguiente resultado si pierdes el juego:

Usa Python para crear juegos

Puede usar Python para crear juegos de línea de comandos, así como juegos gráficos. Algunos juegos de línea de comandos interesantes que puede crear con Python incluyen el juego de adivinanzas de números, el juego Magic 8 Ball, Mad Libs, Rock/Paper/Scissors y un juego de aventuras de texto.

Algunos juegos gráficos divertidos que puede crear con python incluyen Tic Tac Toe, Maze, Snake, Pacman, Memory, Life. La mejor parte de estos juegos es que puedes crearlos solo con la biblioteca estándar de Python.