Python - necesito poder meter palabras en este ahorcado y que se queden las letras que cierta al meterla

 
Vista:

necesito poder meter palabras en este ahorcado y que se queden las letras que cierta al meterla

Publicado por alumno1bx (1 intervención) el 04/02/2023 18:55:35
import random

escenario = \
'''
~~~~~~~~~|~
|
0123456 J
~~~~~~~~~~~
'''

simbolos = '><(((º>'

def idioma():
seleccion = input(
"Selecciona el idioma que quieres (español,catalan e ingles): ")
if seleccion == "español":

diccionarioprovisional = []
for palabra in range(3):
añadir = str(input("Añade palabras para adivinar: "))
diccionarioprovisional.append(añadir)
return seleccion, diccionarioprovisional

elif seleccion == "catalan":
diccionarioprovisional = []
for palabra in range(3):
añadir = str(input("Afegeix paraules per esbrinar: "))
diccionarioprovisional.append(añadir)
return seleccion, diccionarioprovisional

elif seleccion == "ingles":
diccionarioprovisional = []
for palabra in range(3):
añadir = str(input("Add words to guess: "))
diccionarioprovisional.append(añadir)
return seleccion, diccionarioprovisional




def bienvenida(seleccion):

print('*' * 63)
if seleccion == "español":
print('* Te doy la bienvenida al juego del ahorcado :) *')
elif seleccion == "catalan":
print('* Et dono la benvinguda al joc del penjat :) *')
else:
print('*Welcome to the hangman game :)*')
print('*' * 63)


# paso 1
def inicializar_juego(diccionario):
palabra = random.choice(diccionario).lower()
tablero = ['_'] * len(palabra)
return tablero, palabra, []


# paso 2
def mostrar_escenario(errores):
escena = escenario
for i in range(0, len(simbolos)):
simbolo = simbolos if i < errores else ' '
escena = escena.replace(str(i), simbolo)
print(escena)


# paso 3
def mostrar_tablero(tablero, letras_erroneas,seleccion):
for casilla in tablero:
print(casilla, end=' ')
print()
print()
if len(letras_erroneas) > 0:
if seleccion == "español":
print('Letras erróneas:', *letras_erroneas)
elif seleccion == "catalan":
print('Lletres erronies:', *letras_erroneas)
else:
print('Wrong letters:', *letras_erroneas)

print()


# paso 4
def pedir_letra(tablero, letras_erroneas):
valida = False
while not valida:
if seleccion =="español":
letra = input('Introduce una letra (a-z): ').lower()
elif seleccion == "catalan":
letra = input('Introdueix una lletra (a-z): ').lower()
else:
letra = input('Enter a letter (a-z): ').lower()

valida = 'a' <= letra <= 'z' and len(letra) == 1 # es una letra
if not valida:
if seleccion =="español":
print('Error, la letra tiene que estar entre a y z.')
elif seleccion == "catalan":
print('Error, la lletra ha de estar entre a i z.')
else:
print('Error, the letter has to be between a and z.')


else:
valida = letra not in tablero + letras_erroneas
if not valida:
if seleccion =="español":
print('Letra repetida, prueba con otra.')
elif seleccion == "catalan":
print('Lletra repetida, prova amb una altra.')
else:
print('Repeated letter, try another.')



return letra


# paso 5
def procesar_letra(letra, palabra, tablero, letras_erroneas):
if letra in palabra:
if seleccion == "español":
print('¡Genial! Has acertado una letra.')
actualizar_tablero(letra, palabra, tablero)
elif seleccion == "catalan":
print('Genial! Has encertat una lletra.')
actualizar_tablero(letra, palabra, tablero)
else:
print('Great! You got a letter right.')
actualizar_tablero(letra, palabra, tablero)
else:
if seleccion == "español":
print('¡Oh! Has fallado.')
elif seleccion == "catalan":
print('Oh! Has fallat.')
else:
print('Oh! You failed.')
letras_erroneas.append(letra)


# paso 5 (auxiliar)
def actualizar_tablero(letra, palabra, tablero):
for indice, letra_palabra in enumerate(palabra):
if letra == letra_palabra:
tablero[indice] = letra


# paso 6
def comprobar_palabra(tablero):
return '_' not in tablero


# bucle principal de juego
def jugar_al_ahorcado(diccionario,seleccion):

tablero, palabra, letras_erroneas = inicializar_juego(diccionario) # paso 1
while len(letras_erroneas) < len(simbolos): # pasos 7 y 8
mostrar_escenario(len(letras_erroneas)) # paso 2
mostrar_tablero(tablero, letras_erroneas, seleccion) # paso 3
letra = pedir_letra(tablero, letras_erroneas) # paso 4
procesar_letra(letra, palabra, tablero, letras_erroneas) # paso 5
if comprobar_palabra(tablero):# paso 6
if seleccion == "español":
print('¡Enhorabuena, lo has logrado!')
elif seleccion == "catalan":
print('Enhorabona, ho has aconseguit!')
else:
print('Congratulations, you got it!')
break
else:
if seleccion == "español":
print(f'¡Lo siento! ¡Has perdido! La palabra a adivinar era {palabra}.')
mostrar_escenario(len(letras_erroneas)) # paso 7
mostrar_tablero(tablero, letras_erroneas)
elif seleccion == "catalan":
print(f'¡Ho sent! ¡Has perdut!La paraula a esbrinar era {palabra}.')
mostrar_escenario(len(letras_erroneas)) # paso 7
mostrar_tablero(tablero, letras_erroneas)
else:
print(f' I am sorry! You have lost! The word to guess was {palabra}.')
mostrar_escenario(len(letras_erroneas)) # paso 7
mostrar_tablero(tablero, letras_erroneas)





def jugar_otra_vez():
if seleccion == "español":
return input('Deseas jugar otra vez (introduce s para sí o cualquier otra cosa para no): ')
elif seleccion == "catalan":
return input('Vols jugar una altra vegada (introdueix s per a si o qualsevol altra cosa per a no): ')
else:
return input('Would you like to play again (enter s for yes or something else for no): ')




def despedida(seleccion):
print('*' * 63)
if seleccion == "español":
print('* Gracias por jugar al ahorcado ¡Hasta pronto! *')
elif seleccion == "catalan":
print('* Gràcies per jugar al penjat Fins aviat! *')
else:
print('* Thanks for playing hangman. See you soon! *')
print('*' * 63)




if __name__ == '__main__':

#diccionario = ['casa', 'pescado', 'calamar', 'monigote', 'codigopiton' ,'futbol', 'giuliano', 'ordenador', 'persona', 'jaume', 'papel' ]
seleccion,diccionario = idioma()
bienvenida(seleccion)
while True:
jugar_al_ahorcado(diccionario,seleccion)
if jugar_otra_vez() != 's': break
despedida(seleccion)

#import random = libreria que utilizamos para que elija una palabra cualquiera del diccionario

#escenario = dibujo del ahoracado

#paso1=elije palabra cualquiera de diccionario convirtiendola en minuscula,
#devuelve la palabra en (_) y te da un vector vacio donde guardamos las letras erroneas

#paso2=escena=copia de escenario,rango 0-7 errores que tienes,simbolo es igual a
#errores que tienes,o else no printear nada.escena printea el simbolo en el lugar
#por ultimo print escena con los fallos que tienes.

#paso3 print casilla,end = espacio entre (_),si letras erroneas major a 0 print las letras erroneas.

#paso 4 Introduce una letra (a-z) minuscula,valia=letra entre a y z solo 1 caracter
#no valida print mensaje a-z,lo contrio print mensaje letra repetida y sigues en el bucle paso4

#paso 5 letra=palabra mensaje (bien),letra =no palabra mensaje (has fallado y
#añade en el vector vacia donde van las letras erroneas).
#paso 5 auxiliar la funcion enumerate nos servira para saber la posicion de la letra introducida
#y si la letra que introducimos es una de la palabra la pone en la posicion correcta del tablero

#paso 6 comprueba si has puesto todas las letras del tablero,si no hay (_) printea lo has logrado
#de lo contrario si has agotado los fallos printea has perdido y te muestar cual era la palabra
1
2
[i][url]
[/url]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder