有以下問題:Tom的攻擊力爲113,血量爲688,Jerry的攻擊力爲112,血量爲691。每個回合他們各攻擊對方一次,請問誰先死?ide
這是一個簡單的「人狗大戰問題」,咱們只要利用類的繼承,在原有的基礎上稍加改動便可實現:spa
import time class Hero: def __init__(self,name,attack_level,blood): self.name = name self.attack_level = attack_level self.blood = blood def attack(self,tar): tar.blood = tar.blood - self.attack_level print('%s 攻擊 %s,%s剩餘血量爲:%s'%(self.name,tar.name,tar.name,tar.blood) ) if tar.blood <= 0: print('%s Die!Game Over!'%tar.name) exit() class People(Hero): def __init__(self,name,attack_level,blood): super().__init__(name,attack_level,blood) def attack(self,tar): super().attack(tar) class Dog(Hero): def __init__(self,name,attack_level, blood): super().__init__(name,attack_level, blood) def attack(self, tar): super().attack(tar) if __name__ == '__main__': tom = People('Tom',113,688) jerry = Dog('Jerry',112,691) while 1: tom.attack(jerry) time.sleep(1) jerry.attack(tom) time.sleep(1)
演示以下:3d