더북(TheBook)

보병은 강화제라는 특수 기술이 있습니다. 특수 기술을 사용하면 일정 시간 동안 이동 속도와 공격 속도가 아주 빠르게 증가합니다. 그 대신 체력이 10만큼 소모되므로 현재 남은 체력이 10보다 클 때만 사용할 수 있다는 조건이 필요합니다. 이 책에서는 다른 부분은 제외하고 특수 기술을 사용할 수 있는지 여부 확인과 체력 소모에 대해서만 작성하겠습니다.

기존에는 AttackUnit 클래스로 보병, 탱크 등 지상 유닛을 생성했지만, 이제는 각 유닛을 직접 클래스로 정의하겠습니다. 먼저 보병 유닛을 위한 Soldier 클래스를 만듭니다.

보병은 공격 유닛입니다. 따라서 AttackUnit 클래스를 상속받아 AttackUnit 클래스의 생성자로 체력, 공격력, 이동 속도를 설정합니다.

강화제 기능을 위해 booster()라는 메서드를 만듭니다. 체력이 10보다 크면 체력 10을 소모한 후 강화제를 사용한다는 안내 문구를 출력하고, 10보다 작으면 강화제 사용이 불가능하다는 문구를 출력합니다.

# 보병 유닛
class Soldier(AttackUnit): --------- ➊ AttackUnit 클래스 상속
    def __init__(self):
        AttackUnit.__init__(self, "보병", 40, 5, 1) # 이름, 체력, 공격력, 이동 속도

    # 강화제: 일정 시간 동안 이동 속도와 공격 속도 증가, 체력 10 감소
    def booster(self): ------------- ➋ 강화제 기능 메서드로 정의
        if self.hp > 10:
            self.hp -= 10 # 체력 10 소모
            print("{0} : 강화제를 사용합니다. (HP 10 감소)".format(self.name))
        else:
            print("{0} : 체력이 부족해 기술을 사용할 수 없습니다".format(self.name))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.