Buenas tardes, estoy siguiendo el libro "Inventar con Python" donde te proponen varios juegos para hacer.
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.
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.