Tank ์ชฝ ์์ฆ๋ชจ๋ ์ค๋ฅ
์ ๋ ์คํ ๋ฌธ์ ์ผ๊น์? class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print("{0} ์ ๋์ ์์ฑํ์ต๋๋ค".format(name)) def move(self, location): print("{0}: {1} ๋ฐฉํฅ์ผ๋ก ์ด๋ํฉ๋๋ค. [์๋ {2}]"\ .format(self.name, location, self.speed)) def damaged(self, damage): print("{0}:{1}๋งํผ ํผํด๋ฅผ ์
์์ต๋๋ค.".format(self.name, damage)) self.hp -= damage print("{0}: ํ์ฌ ์ฒด๋ ฅ์ {1} ์
๋๋ค.".format(self.name, self.hp)) if self.hp 10: self.hp -= 10 print("{0}: ๊ฐํ์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. (HP 10 ๊ฐ์)".format(self.name)) else: print("{0}: ์ฒด๋ ฅ์ด ๋ถ์กฑํด ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.".format(self.name)) class Tank(AttackUnit): siege_developed = False def __init__(self): AttackUnit.__init__(self, "ํฑํฌ", 150, 35, 1) self.sige_mode = False def set_seige_mode(self): if Tank.siege_developed == False: return if self.siege_mode == False: print("{0} : ์์ง ๋ชจ๋๋ก ์ ํํฉ๋๋ค.".format(self.name)) self.damage *= 2 self.sige_mode = True else: print("{0}: ์์ง ๋ชจ๋๋ฅผ ํด์ ํฉ๋๋ค.".format(self.name)) self.damage //=2 self.siege_mode = False class Flyable: def __init__(self, flying_speed): self.flying_speed = flying_speed def fly(self, name, location): print("{0}: {1} ๋ฐฉํฅ์ผ๋ก ๋ ์๊ฐ๋๋ค. [์๋ {2}]".format(name, location, self.flying_speed)) class FlyableAttackUnit(AttackUnit, Flyable): def __init__(self, name, hp, damage, flying_speed): AttackUnit.__init__(self, name, hp, damage, 0) Flyable.__init__(self, flying_speed) def move(self, location): self.fly(self.name, location) class Stealth(FlyableAttackUnit): def __init__(self): FlyableAttackUnit.__init__(self,"์ ํฌ๊ธฐ", 80, 20,5) self.cloaked = False def cloaking(self): if self.cloaked == True: print("{0} : ์ํ๋ชจ๋๋ฅผ ํด์ ํฉ๋๋ค.".format(self.name)) self.cloaked = False else: print("{0}: ์ํ๋ชจ๋๋ฅผ ์ค์ ํฉ๋๋ค.".format(self.name)) self.cloaked = True