elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Recomendaciones de código Python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recomendaciones de código Python  (Leído 2,495 veces)
zellion

Desconectado Desconectado

Mensajes: 78



Ver Perfil
Recomendaciones de código Python
« en: 14 Diciembre 2021, 16:10 pm »

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.

Código
  1. import random
  2.  
  3. def imagen(pos):
  4.    imagenes = ['''A H O R C A D O
  5.    +---+
  6.    |
  7.    |
  8.    |
  9.    |
  10.    |
  11.    =========''',
  12.  
  13.    '''A H O R C A D O
  14.    +---+
  15.    | |
  16.    |
  17.    |
  18.    |
  19.    |
  20.    =========''',
  21.  
  22.    '''A H O R C A D O
  23.    +---+
  24.    | |
  25.    | O
  26.    |
  27.    |
  28.    |
  29.    =========''',
  30.  
  31.    '''A H O R C A D O
  32.    +---+
  33.    | |
  34.    | O
  35.    | |
  36.    |
  37.    |
  38.    =========''',
  39.  
  40.    '''A H O R C A D O
  41.    +---+
  42.    | |
  43.    | O
  44.    |/|
  45.    |
  46.    |
  47.    =========''',
  48.  
  49.    '''A H O R C A D O
  50.    +---+
  51.    | |
  52.    | O
  53.    |/|\\
  54.    |
  55.    |
  56.    =========''',
  57.  
  58.    '''A H O R C A D O
  59.    +---+
  60.    | |
  61.    | O
  62.    |/|\\
  63.    |/
  64.    |
  65.    =========''',
  66.    '''A H O R C A D O
  67.    +---+
  68.    | |
  69.    | O
  70.    |/|\\
  71.    |/ \\
  72.    |
  73.    =========''']
  74.  
  75.    return imagenes[pos]
  76.  
  77. def replace_at(cadena, pos, char):
  78.    pizarraLista = list(cadena)
  79.    pizarraLista[pos] = char
  80.    cadena = "".join(pizarraLista)
  81.    return cadena
  82.  
  83. if __name__ == "__main__":
  84.    palabraSecreta = ["mono", "caballo", "toro", "cerdo", "cabra"]
  85.    continuar = True
  86.    while continuar == True:
  87.  
  88.        #Inicializamos variables
  89.        palabra = list(random.choice(palabraSecreta))
  90.        letraSeleccionada = []
  91.        intentos = 0
  92.        pizarra = ""
  93.        letrasIncorrectas = ""
  94.        letrasCorrectas = 0
  95.  
  96.        for i in palabra:
  97.            pizarra += "_"
  98.  
  99.        #Pintamos el tablero
  100.        print(imagen(0))
  101.        print("Letras incorrectas: ")
  102.        print(pizarra)
  103.  
  104.        while intentos < 7:
  105.            #Pedimos una letra al usuario y se verifica que no lo haya introducido previamente.
  106.            letra = input(" \n \n Adivine una letra. ").lower()
  107.            while letra in letraSeleccionada:
  108.                letra = input("Esa letra ya se ha seleccionado. Elija otra letra. ").lower()
  109.            letraSeleccionada.append(letra)
  110.  
  111.            #Se verifica si la última letra elegida se encuentra en la palabra.
  112.            if letraSeleccionada[-1] in palabra:
  113.                pos = 0
  114.                #Buscamos y sustituimos en la palabra el valor _ por la letra correspondiente.
  115.                for i in palabra:
  116.                    if i == letraSeleccionada[-1]:
  117.                        letrasCorrectas += 1
  118.                        pizarra = replace_at(pizarra,pos,letraSeleccionada[-1])
  119.                    pos += 1
  120.                    print(imagen(intentos))
  121.            else:
  122.                intentos += 1
  123.                print(imagen(intentos))
  124.                letrasIncorrectas += letraSeleccionada[-1]
  125.            #Refrescamos la imagen del tablero.
  126.            print("Letras incorrectas: " + letrasIncorrectas)
  127.            print(pizarra)
  128.  
  129.            if letrasCorrectas == len(palabra):
  130.                print("Enhorabuena, has acertado todas las letras")
  131.                break
  132.  
  133.        consultarContinuar = input("¿Quiere continuar? Presione Y o N. ")
  134.        if consultarContinuar.upper() == "N":
  135.            continuar = False
  136.  
  137.  

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.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
De PHP a Python, recomendaciones?
Scripting
Syphroot 2 3,230 Último mensaje 11 Febrero 2010, 15:44 pm
por pucheto
Recomendaciones, sugerencias script python
Scripting
Arnau27 1 3,330 Último mensaje 8 Septiembre 2011, 01:28 am
por S3kh
[Python] Como convertir codigo de Python a .exe? « 1 2 »
Scripting
n1sen 10 7,038 Último mensaje 17 Agosto 2017, 16:07 pm
por daryo
Recomendaciones para aprender Hacking con Python y C++
Dudas Generales
Elliot123 1 2,194 Último mensaje 12 Enero 2018, 12:18 pm
por aangrymasther
Recomendaciones? Java, python + C/C++
Programación General
pingu489 5 3,232 Último mensaje 20 Julio 2019, 18:21 pm
por codX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines