Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Warrior:
- def __init__(self):
- pass
- h = 50
- a = 5
- @property
- def health(self):
- return self.h
- @health.setter
- def health(self, value):
- self.h = value
- def attack(self):
- return self.a
- @property
- def is_alive(self):
- if self.health > 0:
- return True
- return False
- class Knight(Warrior):
- a = 7
- def fight(unit_1, unit_2):
- while True:
- unit_2.health = unit_2.health - unit_1.attack()
- if not unit_2.is_alive:
- return True
- unit_1.health = unit_1.health - unit_2.attack()
- if not unit_1.is_alive:
- return False
- if __name__ == '__main__':
- #These "asserts" using only for self-checking and not necessary for auto-testing
- chuck = Warrior()
- bruce = Warrior()
- carl = Knight()
- dave = Warrior()
- mark = Warrior()
- assert fight(chuck, bruce) == True
- assert fight(dave, carl) == False
- assert chuck.is_alive == True
- assert bruce.is_alive == False
- assert carl.is_alive == True
- assert dave.is_alive == False
- assert fight(carl, mark) == False
- assert carl.is_alive == False
- print("Coding complete? Let's try tests!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement