Curso-lenguaje-python/python-total/doc_curso/05_ahorcado/053Juego_Ahorcado.py
Manuel Vergara f4e9797c4b Restructure content and add notes from HolaMundo
Signed-off-by: Manuel Vergara <manuel@vergaracarmona.es>
2023-05-20 09:36:26 +02:00

93 lines
2.2 KiB
Python

from random import choice
palabras = ['panadero', 'dinosaurio', 'helipuerto', 'tiburon']
letras_correctas = []
letras_incorrectas = []
intentos = 6
aciertos = 0
juego_terminado = False
def elegir_palbra(lista_palabras):
palabra_elegida = choice(lista_palabras)
letras_unicas = len(set(palabra_elegida))
return palabra_elegida, letras_unicas
def pedir_letra():
letra_elegida = ''
es_valida = False
abecedario = 'abcdefghijklmnñopqrstuvwxyz'
while not es_valida:
letra_elegida = input("Elige una letra: ")
if letra_elegida in abecedario and len(letra_elegida) == 1:
es_valida = True
else:
print("No has elegido una letra correcta")
return letra_elegida
def mostrar_nuevo_tablero(palabra_elegida):
lista_oculta = []
for l in palabra_elegida:
if l in letras_correctas:
lista_oculta.append(l)
else:
lista_oculta.append('-')
print(' '.join(lista_oculta))
def chequear_letra(letra_elegida, palabra_oculta, vidas, coincidencias):
fin = False
if letra_elegida in palabra_oculta:
letras_correctas.append(letra_elegida)
coincidencias += 1
else:
letras_incorrectas.append(letra_elegida)
vidas -= 1
if vidas == 0:
fin = perder()
elif coincidencias == letras_unicas:
fin = ganar(palabra_oculta)
return vidas, fin, coincidencias
def perder():
print("Te has quedado sin vidas")
print("La palabra oculta era " + palabra)
return True
def ganar(palabra_descubierta):
mostrar_nuevo_tablero(palabra_descubierta)
print("Felicitaciones, has encontrado la palabra!!!")
return True
palabra, letras_unicas = elegir_palbra(palabras)
while not juego_terminado:
print('\n' + '*' * 20 + '\n')
mostrar_nuevo_tablero(palabra)
print('\n')
print('Letras incorrectas: ' + '-'.join(letras_incorrectas))
print(f'Vidas: {intentos}')
print('\n' + '*' * 20 + '\n')
letra = pedir_letra()
intentos, terminado, aciertos = chequear_letra(letra,palabra,intentos,aciertos)
juego_terminado = terminado