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.
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.
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 (python) [Seleccionar]
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.