Es recomendable que este ejercicio lo escribas (trata de no copiarlo) y lo revises para ver que se obtiene el resultado esperado. Si tiene alguna duda utiliza el debugger para ejecutar el programa paso por paso. Si estas siguiendo el video, este ejercicio lo encontraras en el minuto [1:15:19]
"""
Proyecto 5 El Ahorcado
26/08/2025
Edito AHR
"""
import random # Se debe dejar un espacio entre lineas import
import string # Se debe dejar un espacio entre lineas import
from palabras_ import palabras # Se debe dejar un espacios entre import's
from ahorcado_diagramas import vidas_diccionario_visual # Se debe dejar dos espacios entre import y el resto del codigo
def obtener_palabra_validas(palabras):
# Seleccionar una palabra al azar de la lista
# de palabras válidas.
palabra = random.choice(palabras) # Selecciona una palabra al azar de la lista
while '-' in palabra or ' ' in palabra:
palabra = random.choice(palabras)
return palabra.upper()
def ahorcado():
print("**********************************")
print("¡Bienvenido al juego del Ahorcado!")
print("**********************************")
palabra = obtener_palabra_validas(palabras)
letras_por_adivinar = set(palabra) # palabra = 'Python', set(Python) = {'P', 'y', 't', 'h', 'o', 'n'}, si ubiera una letra repetida se omiten las repeticiones
letras_adivinadas = set() # La funcion set() crea un 'conjunto' vacio
abecedario = set(string.ascii_uppercase) # No contiene la Ñ, podria añadirse al conjunto la Ñ, en el ejemplo no hay palabras con 'ñ'
vidas = 7
while len(letras_por_adivinar) > 0 and vidas > 0:
# Letras adivinadas
# Ejemplo de: ' '.join({'A', 'B', 'C'}) -> 'A B C'
print(f"Te quedan {vidas} vidas y has usado estas letras: {' '.join(letras_adivinadas)}") # join() une los elementos de un conjunto en una cadena, separados por un espacio en blanco
# Ejemplo de como mostrar las letras adivinadas las letras pendientes señaladas con un '-'
# H - L A
# Mostrar el estado actual de la palabra
palabra_lista = [letra if letra in letras_adivinadas else '-' for letra in palabra] # Esta forma de escribir las listas se llama 'Lista por comprensión'
# Mostrar estado del ahorcado
print(vidas_diccionario_visual[vidas])
# Mostrar las letras separadas por un espacio.
print(f"Palabra: {' '.join(palabra_lista)}")
letra_usuario = input("Escoge una letra: ").upper()
# Si la letra escogida es válida (es una letra del abecedario y no ha sido escogida antes)
# se añade la letra al conjunto de letras adivinadas
if letra_usuario in abecedario - letras_adivinadas:
letras_adivinadas.add(letra_usuario) # Añade la letra al conjunto de letras adivinadas
# Si la letra esta en la palabra por adivinar?
# remover la letra del conjunto de letras pendientes por adivinar
# Si no esta en la palabra, quitar una vida al usuario
if letra_usuario in letras_por_adivinar:
letras_por_adivinar.remove(letra_usuario)
print(' ')
else:
vidas -= 1 # Es lo mismo que vidas = vidas - 1
print(f"\nTu letra, {letra_usuario} no está en la palabra.")
# Si la letra escogida por el usuario ya fue ingresada
elif letra_usuario in letras_adivinadas:
print("\nYa escogiste esa letra. Por favor escoge una letra nueva.")
else:
print("Esta letra no es válida.")
# El juego llega a esta línea cuando se adivinan todas las letras de la palabra
# o cuando se agotan la vidas del jugador
if vidas == 0:
print(f"¡Ahorcado! Perdiste. Lo lamento mucho. la palabra era: {palabra}")
else:
print(f"¡Excelente! Adivinaste la palabra: {palabra}")
print("Gracias por jugar.")
ahorcado()
Copia el contenido del siguiente bloque y pégalo en el Bloc de Notas, guarda el archivo con el nombre de palabras_.py en la misma carpeta donde tienes el archivo del programa principal.
palabras = ["aire", "ojos", "piel", "anteojos", "joven", "viejo", "alto", "bajo", "pequeño", "gordo", "delgado", "bella", "azul", "verde", "negro", "sombrero", "guantes", "corbata", "gemelos", "paraguas", "plata", "oro", "perla", "diamante", "esmeralda", "anillo", "pulsera", "reloj", "elegante", "sencillo", "chaqueta", "traje", "camisa", "zapatos", "pelo", "maquillaje", "peine", "dedo", "hueso", "cara", "ojo", "calor", "ambulancia", "enfermera", "farmacia", "vitaminas", "pastillas", "dentista", "ciego", "correr", "caminar", "regresar", "saltar", "fin", "cerrar", "nombre", "mujer", "hombre", "soltero", "novio", "nacer", "vivir", "edad", "anciana","trabajar", "cobrar", "azafata", "artista", "panadero", "carpintero", "cocinero", "maestro", "bombero", "juez", "modelo", "monje", "pintor", "piloto", "secretaria", "taxista", "escritor", "jefe", "aprendiz", "jubilado", "empleo", "industria", "taller", "tienda", "vacaciones", "sueldo", "impuesto", "huelga", "obedecer", "locura", "humor", "inteligencia", "orgullo", "timidez", "valiente", "aburrido", "loco", "divertido", "bueno", "feliz", "amable", "pobre", "serio", "extraño", "gritar", "llorar", "suspirar", "preocupado", "risa", "amor", "suerte", "enamorado", "ver", "apagar", "luz", "color", "lupa", "microscopio", "claro", "cantar", "silbar", "voz", "eco", "trueno", "altavoz", "radio", "auricular", "liso", "comer", "dulce", "salado", "perfume", "despertarse", "vestirse", "desayunar", "leer", "dormirse", "toalla", "cobija", "almuerzo", "sopa", "agua", "leche", "jugo", "sal", "pimienta", "vinagre", "ajo", "perejil", "menta", "canela", "mayonesa", "pan", "mantequilla", "miel", "manzana", "pera", "durazno", "cereza", "papa", "lechuga", "arroz", "pollo", "pavo", "hamburguesa", "camarones", "tortilla", "espagueti", "sopa", "helado", "chocolate", "galletas", "bombones", "limpiar", "cortar", "hervir", "planchar", "aspiradora", "plancha", "horno", "abrelatas", "vajilla", "vaso", "cafetera", "azucarera", "comprar", "gastar", "vender", "barato", "caro", "gratis", "cliente", "bolsa", "precio", "recibo", "ascensor", "esquiar", "ciclismo", "golf", "pelota", "tenis", "bicicleta", "estadio", "gol", "torneo", "leer", "dibujar", "cantar", "bailar", "libro", "revista", "clavo", "cine", "pala", "cocina", "hielo", "coro", "piano", "cartas", "pesca", "radio", "noticias", "televisor", "documental", "anuncio", "aplaudir", "teatro", "circo", "mago", "disco", "portero", "propina", "regalo", "fiesta", "vela", "alfombra", "puerta", "ventana", "cortina", "escritorio", "cuadro", "juguete", "alquiler", "mudanza", "casa", "pared", "chimenea", "comedor", "plaza", "calle", "estacionamiento", "parque", "puente", "puerto", "edificio", "escuela", "museo", "estatua", "fuente", "turista", "mendigo", "manejar", "acelerar", "frenar", "cruzar", "reparar", "conductor", "multa", "atasco", "carretera", "peaje", "curva", "florecer", "campo", "bosque", "huerto", "selva", "tronco", "rama", "flor", "hoja", "musgo", "cedro", "roble", "pino", "nogal", "naranjo", "tallo", "clavel", "margarita", "amapola", "rosa", "girasol", "violeta", "gato", "perro", "vaca", "pato", "oveja", "conejo", "pez", "oso", "jirafa", "erizo", "mariposa", "foca", "tigre", "cobra", "almeja", "paloma", "cisne", "mosquito", "hormiga", "llover", "nevar", "nublado", "soleado", "clima", "rayo", "nieve", "sol", "viento", "padre", "madre", "hijo", "abuela", "estudioso", "aula", "tiza", "regla", "computadora", "diccionario"]
Copia el contenido del siguiente bloque y pégalo en el Bloc de Notas, guarda el archivo con el nombre de ahorcado_diagramas.py en la misma carpeta donde tienes el archivo del programa principal.
vidas_diccionario_visual = {
0: """
___________
| / |
|/ ( )
| |
| / \\
|
""",
1: """
___________
| / |
|/ ( )
| |
| /
|
""",
2: """
___________
| / |
|/ ( )
| |
|
|
""",
3: """
___________
| / |
|/ ( )
|
|
|
""",
4: """
___________
| / |
|/
|
|
|
""",
5: """
___________
| /
|/
|
|
|
""",
6: """
|
|
|
|
|
""",
7: "",
}
Veamos los resultados en la consola:
PS C:\Users\/Codigo/Modulo 2/El_ahorcado.py"
**********************************
¡Bienvenido al juego del Ahorcado!
**********************************
Te quedan 7 vidas y has usado estas letras:
Palabra: - - - - - -
Escoge una letra: a
Te quedan 7 vidas y has usado estas letras: A
Palabra: - A - - A -
Escoge una letra: p
Tu letra, P no está en la palabra.
Te quedan 6 vidas y has usado estas letras: P A
|
|
|
|
|
Palabra: - A - - A -
Escoge una letra: s
Te quedan 6 vidas y has usado estas letras: P S A
|
|
|
|
|
Palabra: - A S - A -
Escoge una letra: c
Tu letra, C no está en la palabra.
Te quedan 5 vidas y has usado estas letras: P S A C
___________
| /
|/
|
|
|
Palabra: - A S - A -
Escoge una letra: t
Te quedan 5 vidas y has usado estas letras: A T C P S
___________
| /
|/
|
|
|
Palabra: - A S T A -
Escoge una letra: n
Tu letra, N no está en la palabra.
Te quedan 4 vidas y has usado estas letras: N A T C P S
___________
| / |
|/
|
|
|
Palabra: - A S T A -
Escoge una letra: r
Te quedan 4 vidas y has usado estas letras: N A T R C P S
___________
| / |
|/
|
|
|
Palabra: - A S T A R
Escoge una letra: g
¡Excelente! Adivinaste la palabra: GASTAR
Gracias por jugar.
PS C:\Users\augus\OneDrive\Documentos\Pythom\Pagina Web Python.hmoweb.net\Codigo\Modulo 2>