코드 7-13 oop2/oop2_3/character.py ②

    class Player(Character):
        def _ _init__(self, name = 'player', hp = 100, power = 10, *attack_kinds):
            super().__init__(name, hp, power)
    
            # 추가된 인스턴스 멤버
            self.skills = [ ]
            for attack_kind in attack_kinds:
                self.skills.append(attack_kind)
    
        # 재정의된 attack( ) 메서드
        # 반드시 재정의되어야 한다
        def attack(self, other, attack_kind):
            if attack_kind in self.skills:
                other.get_damage(self.power, attack_kind)
    
        # 재정의된 get_damage( ) 메서드
        # 반드시 재정의되어야 한다
        def get_damage(self, power, attack_kind):
            '''
            만약 공격 종류가
            플레이어의 기술 중 하나라면
            피해가 절반으로 감소한다
            '''
            if attack_kind in self.skills:
                self.HP -= (power//2)
              else:
                self.HP -= power
    


    현재까지 만든 클래스 디자인을 그림으로 표현하면 그림 7-4와 같습니다.

    143

    그림 7-4 character 클래스 디자인 ①

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.