Diferencia entre revisiones de «Ahorcado en Python»

Contenido eliminado Contenido añadido
Danimros (discusión | contribs.)
Sin resumen de edición
Danimros (discusión | contribs.)
Movido a otra página
Línea 22:
- [[Ahorcado en Python/diccionario_de_palabras]]
- [[Ahorcado en Python/clasificacion]]
 
== Ahorcado base ==
 
Importamos el '''módulo os''' para poder utilizar la función de limpiar pantalla:
 
<syntaxhighlight lang="python">
import os # Para borrar la pantalla
</syntaxhighlight>
 
Tenemos que guardar la lista de las letras que hemos dicho, tanto correctas como incorrectas. Para ello, utilizaremos dos listas, de momento vacías:
 
<syntaxhighlight lang="python">
letraIncorrecta = []
letraCorrecta = []
</syntaxhighlight>
 
Guardaremos en una variable llamada '''palabraSecreta''' la palabra que tenemos que adivinar, y en otra una copia de la misma palabra, pero vacía (con _ en lugar de letras), que se llamará '''palabraResuelta'''.
 
A medida que vayamos acertando letras, iremos modificando '''palabraResuelta''', cambiando los _ por letras, a medida que se vayan acertando:
 
<syntaxhighlight lang="python">
palabraSecreta = list("navidad") # Palabra original, la guardamos
longitudPalabra = len(palabraSecreta)
palabraResuelta = ['_'] * longitudPalabra # Creamos una lista para resolver con todo "_"
</syntaxhighlight>
 
Una vez declarado esto, entraremos en un bucle de pedir letras, hasta que el juego termine. De momento, el bucle será infinito, aunque después deberemos modificar esto:
 
<syntaxhighlight lang="python">
while True:
</syntaxhighlight>
 
Podemos pintar un poco de texto informando del juego, que podremos personalizar:
 
<syntaxhighlight lang="python">
print ("") # pinta una línea en blanco
print ('A H O R C A D O (Ramon Llull Edition)')
print ("--------------------------------------\n\n") Cada # \n añade un salto de línea
</syntaxhighlight>
 
Antes de pedir letras, mostramos las incorrectas, para evitar que se repitan:
 
<syntaxhighlight lang="python">
print ('Letras incorrectas: ', end = '')
for letra in letraIncorrecta:
print (letra, end = '') # end = '' evita que se haga un salto de línea despues del print
print ("")
</syntaxhighlight>
 
Ahora mostraremos la palabra tal como está, con las letras que hayan sido acertadas en su posición, y las que quedan con un _:
 
<syntaxhighlight lang="python">
print ("--------------------------------------\n")
print("PALABRA: ")
for i in range(longitudPalabra): # Remplaza los espacios en blanco por la letra bien escrita
if palabraSecreta[i] in letraCorrecta:
palabraResuelta[i] = palabraSecreta[i]
 
# Mostramos la palabra como está ahora
 
for letra in palabraResuelta: # Mostrará la palabra secreta con espacios entre letras
print (letra+" ", end = '')
print ("\n")
</syntaxhighlight>
 
Por último, pedimos al usuario que introduzca una letra:
 
<syntaxhighlight lang="python">
print ('Adivina una letra:')
letra = input()
</syntaxhighlight>
 
Si la letra está en la palabra, la meteremos en la lista letraCorrecta. Sino, en la lista letraIncorrecta:
 
<syntaxhighlight lang="python">
if letra in palabraSecreta:
letraCorrecta.append(letra)
else:
letraIncorrecta.append(letra)
</syntaxhighlight>
 
== Mejoras ahorcado ==