He terminado de hacer el juego del ahorcado y me gustaría que me dierais vuestra opinión o consejos para ir mejorando en este lenguaje.
Os dejo el código.
Código
import random def imagen(pos): imagenes = ['''A H O R C A D O +---+ | | | | | =========''', '''A H O R C A D O +---+ | | | | | | =========''', '''A H O R C A D O +---+ | | | O | | | =========''', '''A H O R C A D O +---+ | | | O | | | | =========''', '''A H O R C A D O +---+ | | | O |/| | | =========''', '''A H O R C A D O +---+ | | | O |/|\\ | | =========''', '''A H O R C A D O +---+ | | | O |/|\\ |/ | =========''', '''A H O R C A D O +---+ | | | O |/|\\ |/ \\ | ========='''] return imagenes[pos] def replace_at(cadena, pos, char): pizarraLista = list(cadena) pizarraLista[pos] = char cadena = "".join(pizarraLista) return cadena if __name__ == "__main__": palabraSecreta = ["mono", "caballo", "toro", "cerdo", "cabra"] continuar = True while continuar == True: #Inicializamos variables palabra = list(random.choice(palabraSecreta)) letraSeleccionada = [] intentos = 0 pizarra = "" letrasIncorrectas = "" letrasCorrectas = 0 for i in palabra: pizarra += "_" #Pintamos el tablero print(imagen(0)) print("Letras incorrectas: ") print(pizarra) while intentos < 7: #Pedimos una letra al usuario y se verifica que no lo haya introducido previamente. letra = input(" \n \n Adivine una letra. ").lower() while letra in letraSeleccionada: letra = input("Esa letra ya se ha seleccionado. Elija otra letra. ").lower() letraSeleccionada.append(letra) #Se verifica si la última letra elegida se encuentra en la palabra. if letraSeleccionada[-1] in palabra: pos = 0 #Buscamos y sustituimos en la palabra el valor _ por la letra correspondiente. for i in palabra: if i == letraSeleccionada[-1]: letrasCorrectas += 1 pizarra = replace_at(pizarra,pos,letraSeleccionada[-1]) pos += 1 print(imagen(intentos)) else: intentos += 1 print(imagen(intentos)) letrasIncorrectas += letraSeleccionada[-1] #Refrescamos la imagen del tablero. print("Letras incorrectas: " + letrasIncorrectas) print(pizarra) if letrasCorrectas == len(palabra): print("Enhorabuena, has acertado todas las letras") break consultarContinuar = input("¿Quiere continuar? Presione Y o N. ") if consultarContinuar.upper() == "N": continuar = False
Sé que faltan validaciones para que introduzcan los datos esperados por el programa, pero me interesa más que funcionales se pueden de hacer de otra manera o más sencilla.
Muchas gracias.