[ Foro de Python ]
Tengo que hacer un código para un juego, ir restando puntos dependiendo de lo que suceda, pero en la segunda vez que utilizo if, el programa no hace lo que debería ser, si zona es igual a 1, 2 o 3 debería pedir otro número y multiplicarlo por la zona obteniendo un puntaje que se debe restar al inicial (501)
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
nuevopt = int
while nuevopt > 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)
tiros2 = 0
while nuevopt > 0:
for tiros2 in range (0,3):
print (jug1_upper + " Ingresa la zona de aterrizaje: ")
zona2 = input ()
if zona2 == 1 or zona2 == 2 or zona2 == 3:
print ("ingresa el número donde ocurrrió el aterrizaje: ")
num2 = input()
puntaje2 = zona*num2
nuevopt2 = inicio - puntaje2
elif zona == "SINGLE BULL":
puntaje2 = 25
nuevopt2 = inicio - puntaje2
elif zona == "DOUBLE BULL":
puntaje2 = 50
nuevopt2 = inicio - puntaje2
else :
puntaje2 = 0
nuevopt2 = inicio - puntaje2
print (nuevopt2)
(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.)