#마린 : 공격 유닛, 군인. 총을 사용
#name = "마린"
#hp = 40
#damage = 5
#print("{} 유닛이 생성되었습니다.".format(name))
#print("체력 {0}, 공격력 {1}\n".format(hp, damage))
#시즈탱크
#tank_name = "탱크"
#tank_hp = 150
#tank_damage = 35
#print("{} 유닛이 생성되었습니다.".format(tank_name))
#print("체력 {0}, 공격력 {1}\n".format(tank_hp, tank_damage))
#tank2_name = "탱크"
#tank2_hp = 150
#tank2_damage = 35
#print("{} 유닛이 생성되었습니다.".format(tank2_name))
#print("체력 {0}, 공격력 {1}\n".format(tank2_hp, tank2_damage))
#def attack(name, location, damage):
#print("{} : {} 방향으로 적군을 공격 합니다. [공격력 {}]".format(name, location, damage))
#attack(name, "1시", damage)
#attack(tank_name, "1시", tank_damage)
#attack(tank2_name, "1시", tank2_damage)
class Unit:
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
print("{} 유닛이 생성 되었습니다.".format(self.name))
print("체력 {}, 공격력 {}".format(self.hp, self.damage))
marine1 = Unit("마린", 40, 5)
marine2 = Unit("마린", 40, 5)
tank = Unit("탱크", 150, 35)
class Unit:
def init(self, name, hp, damage):
# __init__ : 생성자. 마린이나 탱크같은 객체가 만들어질때 자동으로 호출되는 부분.
# 클래스로 부터 만들어지는 것을 '객체'
# 이때 마린과 탱크는 유닛 클래스의 인스턴스 라고 표현함
# init 함수에 정의된 것과 동일한 갯수만큼 value(ex>"마린", 40, 5)를 생성해 줘야 한다.
self.name = name
self.hp = hp
self.damage = damage
print("{} 유닛이 생성 되었습니다.".format(self.name))
print("체력 {}, 공격력 {}".format(self.hp, self.damage))
marine1 = Unit("마린", 40, 5)
marine2 = Unit("마린", 40, 5)
tank = Unit("탱크", 150, 35)
class Unit:
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
print("{} 유닛이 생성 되었습니다.".format(self.name))
print("체력 {}, 공격력 {}".format(self.hp, self.damage))
#레이스
wraith1 = Unit("레이스", 80, 5)
print("유닛 이름 : {}, 공격력 : {}".format(wraith1.name, wraith1.damage))
#마인드 컨트롤
wraith2 = Unit("빼앗은 레이스", 80, 5)
wraith2.clocking = True
#클로킹이라는 변수는 처음에 없었다. 외부에서 클로킹을 추가로 할당한 변수
#레이스1에는 클로킹이 없기때문에 아래 if문에 레이스1을 넣으면 오류가 발생한다.
if wraith2.clocking == True:
print("{} 는 현재 클로킹 상태입니다.".format(wraith2.name))
class Unit:
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
print("{} 유닛이 생성 되었습니다.".format(self.name))
print("체력 {}, 공격력 {}".format(self.hp, self.damage))
#공격유닛
class AttackUnit:
def init(self, name, hp, damage):
self.name = name
self.hp = hp
self.damage = damage
def attack(self, location):
print("{} : {} 방향으로 적군을 공격합니다. [공격력 {}]"\
.format(self.name, location, self.damage))
#셀프는 자기자신을 의미, 클래스 내에서 메소드 앞에는 항상 셀프를 입력해야한다.
def damaged(self, damage):
print("{} : {} 데미지를 입었습니다.".format(self.name, damage))
self.hp -= damage
print("{} : 현재 체력은 {} 입니다.".format(self.name, self.hp))
if self.hp <= 0:
print("{} : 파괴되었습니다.".format(self.name))
#파이어뱃
firebat1 = AttackUnit("파이어뱃", 50, 16)
firebat1.attack("5시")
#공격을 2번 받는 것으로 가정
firebat1.damaged(25)
firebat1.damaged(25)