jeudi 13 septembre 2018

if statement ignored even though the condition is true

This is my whole program, I don't know if it helps that i posted all but the if statement is in line 38 . I don't know why the if statement does nothing, even though the condition is true sometimes (i printed position_enemy1_x and position_enemy1_y after they got random values and then typed them in attacked_position_x and attacked_position_y but it still didn't run).

import random
class Enemy :
    life = 50
        def attack (self) :
        self.power = random.randrange(1, 15)
        return self.power
    def position (self) :
        self.xposition = random.randrange(1, 4)
        self.yposition = random.randrange(1, 4)
        return self.xposition, self.yposition
    def life_check_enemy (self) :
        if(self.life > 0) :
            print("The enemy has " + str(self.life) + " life left" )
        else :
            print("An enemy is dead.")
        return self.life
    def my_life_check ( remained_life ) :
        if remained_life < 0 :
            print("You lost")
        else :
            print("It's your turn now!")

my_life = 200
enemy1 = Enemy ()
enemy2 = Enemy ()
life_enemy1 = enemy1.life_check_enemy()
life_enemy2 = enemy2.life_check_enemy()
while (life_enemy1 > 0) or (life_enemy2 > 0):
    power1 = enemy1.attack()
    power2 = enemy2.attack()
    my_life = my_life - power1 - power2
    my_life_check(my_life)
    print("The position I attack is ")
    attacked_position_x = input()
    attacked_position_y = input()
    (position_enemy1_x, position_enemy1_y) = enemy1.position()
    (position_enemy2_x, position_enemy2_y) = enemy2.position()
    if (position_enemy1_x, position_enemy1_y) == (attacked_position_x, attacked_position_y) :
        my_power = random.randrange (10, 20)
        life_enemy1 = life_enemy1 - my_power
        enemy1.life_check_enemy()
    elif (position_enemy2_x, position_enemy2_y) == (attacked_position_x, attacked_position_y) :
        my_power = random.randrange (10, 20)
        life_enemy2 = life_enemy2 - my_power
        enemy2.life_check_enemy()
    else:
        print("You did't get anybody! Next time maybe!")
    print(my_life)

Aucun commentaire:

Enregistrer un commentaire