더북(TheBook)


3.1Character 클래스 만들기


게임 캐릭터 클래스를 만든다고 가정하겠습니다. 게임에 등장하는 캐릭터는 플레이어와 몬스터입니다. 모든 캐릭터(추상 클래스)는 다음과 같은 특성을 가집니다.

인스턴스 멤버: 이름(name), 체력(hp), 공격력(power)을 가진다.

인스턴스 메서드: 공격(attack)할 수 있고 공격당하면 피해(get_damage)를 입는다(모두 추상 메서드로 구현).


코드 7-12 oop2/oop2_3/character.py ①

from abc import *

# 추상 클래스로 만듭니다
class Character(metaclass = ABCMeta):
    def _ _init__(self, name, hp, power):
        self.name = name
        self.HP = hp
        self.power = power

    # 추상 메서드
    # 파생 클래스는 반드시 attack( )과 get_damage( ) 메서드를 오버라이딩해야 합니다
    @abstractmethod
    def attack(self, other, attack_kind):
        pass

    @abstractmethod
    def get_damage(self, power, attack_kind):
        pass

    def _ _str__(self):
        return '{} : {}'.format(self.name, self.HP)


코드에 대한 설명은 주석으로 대신하겠습니다. 이제 플레이어 클래스를 만들어 볼까요?

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