hola, soy nuevo en python y estoy haciendo un juego para ir practicando. Sin embargo, tengo un problema con los condicionales, ya que python los ignora. El código es el siguiente:
# -*- coding: utf-8 -*-
import random
vida = 100
ataque = 30
defensa = 25
evasion = 3 #Por ahora no sirve
#ahora el enemigo
vidaen = 98
ataqueen = 24
defensaen = 20
evasionen = 1 #Por ahora no sirve
raw_input("Empieza el combate, ENTER para continuar")
#Con esto iniciamos el combate
def atacar(ataque,defensa,evasion,ataqueen,defensaen,evasionen,vidaen,vida):
print "Turno del jugador"
ataquesi = random.randint(1, 100) #Probabilidad de atacar
evasionensi = random.randint(1, 100) #Probabilidad de evasión enemiga
if ataquesi > 10 and evasionensi < 90: #Si se saca + de 10 para atacar y menos de 90 en evasion...
total = ataque - defensaen
print "Jugador ataca a enemigo, daño total:"
print total
vidaen = vidaen - total
print "El enemigo tiene",vidaen,"puntos de vida"
#lo dejamos por un momento así
else:
print "Jugador falla al atacar"
#lo dejamos por un momento así
print "Turno del enemigo"
ataqueensi = random.randint(1, 100) #Probabilidad de atacar
evasionsi = random.randint(1, 100) #Probabilidad de evasión enemiga
if ataqueensi > 10 and evasionsi < 90: #Si se saca + de 10 para atacar y menos de 90 en evasion...
total = ataqueen - defensa
print "Enemigo ataca a jugador, daño total:"
print total
vida = vida - total
print "El Jugador tiene",vida, "puntos de vida"
#lo dejamos por el momento así
else:
print "Enemigo falla al atacar"
#lo dejamos por el momento así
#veamos que pasa cuando se muere
if (vida < 0):
print "Enemigo mata a Jugador"
print "Has perdido"
raw_input()
else:
atacar(ataque,defensa,evasion,ataqueen,defensaen,evasionen,vidaen,vida)
if (vidaen < 0):
print "Jugador mata a enemigo"
print "Has ganado este combate"
raw_input()
else:
atacar(ataque,defensa,evasion,ataqueen,defensaen,evasionen,vidaen,vida)
atacar(ataque,defensa,evasion,ataqueen,defensaen,evasionen,vidaen,vida)
Todo va bien, pero la última parte no funciona, en teoría cuando "vida" o "vidaen" llega a cero, tendría que parar y avisarte, sin embargo, no lo hace y el programa sigue hasta el infinito :P
¿Qué estoy haciendo mal? También he probado a hacerlo con while y nada.
Gracias