[ Foro de Python ]

Tengo que hacer un código en Python que reciba 2 nombres (jugadores) y seleccione parte de ellos, se supone que es un juego, ellos parten con 501 de puntaje y se va restando, el primero que llega a 0 gana, el problema es que cuando hago el if para que si

09-Jul-2021 14:44
Invitado (roc445g)
1 Respuestas

print ("Ingrese su nombre (jugador 1) ")
jug1 = input()
print ("Ingrese su nombre (jugador 2) ")
jug2 = input()

puninicial = 501

jug1 = jug1[0:3]
jug1_upper = jug1.upper()
print (jug1_upper + " " + str(501))

jug2 = jug2[0:3]
jug2_upper = jug2.upper()

inicio = 501
if jug1_upper == jug2_upper:
   print (jug2_upper + "2" + " " + str(inicio))

else :
   print (jug2_upper + " " + str(inicio))

print ("A jugar!\n")
print ("Orden para ingresar resultados:")
print ("1er dardo : Zona (1(sencillo), 2(doble), 3(triple) o SINGLE BULL, DOUBLE BULL, NULL) y número, si es que el dardo aterrizó en las zonas 1, 2 o 3. \n")
print ("Ejemplo de tiros:")
print ("DOUBLE BULL")
print ("3 20")
print ("3 19")

tiros = 0
for tiros in range (0,3):
     print (jug1_upper + " Ingresa la zona de aterrizaje: ")
     zona = input ()
     if zona == 1 or zona == 2 or zona == 3:
                print ("ingresa el número donde ocurrrió el aterrizaje: ")
                num = input()
                puntaje = zona*num
                nuevopt = inicio - puntaje

     elif zona == "SINGLE BULL":
      puntaje = 25
      nuevopt = inicio - puntaje

     elif zona == "DOUBLE BULL":
      puntaje = 50
      nuevopt = inicio - puntaje

     else :
      puntaje = 0
      nuevopt = inicio - puntaje          

print (nuevopt)


17-Jul-2021 21:32
Invitado (jacinto)

hola roc

a tu programa puedes hacerle muchas mejoras por ej dividiendolo en bloques, aprobechando los inputs etc

el problema que tienes es que recibes un string y pretendes usalo como entero, para eso necesitas convertirlo haciendo algo como:

zona = int( input ("Ingresa la zona de aterrizaje " + jug1 + "> "))

con int() pasas el string a entero

suerte ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)