728x90
어제에 이어 오늘도 진행했는데, 사실 큰 수정을 진행하지는 않았다.
일단 그래도 수정, 첨부 사항을 만들었는데
- assassin 캐릭터가 너무 약하다.
>> 이 캐릭터가 warrior와 wizard에 비해서 뭔가 임팩트 있는 스탯이 없다고 판단
>> 어떠한 스탯을 새로 투여할까 고민(회피, 혹은 일정 턴 당 폭딜)
>>암살 쪽으로 진행해야 한다고 판단해서 순간적인 폭딜 중요하게 생각
>>하지만 무작정 늘리면 다른 캐릭터와 특색이 겹침
그 결과, 플레이어 공격 두 번 당 한 차례씩 공격하도록 설정하는 것이 밸런스에 맞겠다고 판단하여 공격.
if문을 사용해서 turn % 4 = 2가 되면, 목적에 부합하는 결과가 나오기 때문에 이렇게 하기로 함.
또한 클래스 부분도 손을 봤다.
사실 크게 손 댄 것은 없지만, 부모 클래스와 자식 클래스 간에 교통정리가 제대로 되지 않았고,
불필요하게 부모 클래스에 많은 함수가 정의되어 있어서 잡아줄 필요가 있었다.
class Character:
"""
모든 캐릭터의 모체가 되는 클래스
"""
def __init__(self, name, hp, mp, power, magic_power):
self.name = name
self.max_hp = hp
self.hp = hp
self.max_mp = mp
self.mp = mp
self.power = power
self.magic_power = magic_power
#상태창(플레이어)
def player_show_status(self):
print(f"{self.name}의 상태: HP {int(self.hp)}/{self.max_hp} MP {self.mp}/{self.max_mp}")
#상태창(몬스터)
def monster_show_status(self):
print(f"{self.name}의 상태: HP {self.hp}/{self.max_hp}")
class Player(Character):
# 모체 캐릭터의 성능을 가진 자식 플레이어의 특성
# 플레이어의 물리딜
def attack(self, other):
damage = random.randint(self.power - 2, self.power + 2)
other.hp = max(other.hp - damage, 0)
print(f"{self.name}의 공격! {other.name}에게 {damage}의 데미지를 입혔습니다.")
if other.hp == 0:
print(f"{other.name}이(가) 쓰러졌습니다.")
# 플레이어의 마법딜
def magic_attack(self, other):
magic_damage = random.randint(self.magic_power + 6, self.magic_power + 12)
other.hp = max(other.hp - magic_damage, 0)
self.mp = max(self.mp - 10, 0)
print(f"{self.name}의 공격! {other.name}에게 {magic_damage}의 데미지를 입혔습니다.")
if other.hp <= 0:
print(f"{other.name}이(가) 쓰러졌습니다.")
class Monster(Character):
# 모체 캐릭터의 성능을 가진 자식 몬스터의 특성 ##
def monster_attack(self, other):
damage = random.randint(self.power - 2, self.power + 2)
other.hp = max(other.hp - damage, 0)
print(f"{self.name}의 공격! {other.name}에게 {damage}의 데미지를 입혔습니다.")
if self.hp <= 0:
print(f"{other.name}이(가) 쓰러졌습니다.")
상태창은 어떻게 할지 고민했는데, Player와 Monster과는 완벽하게 관련있는 것 같진 않아서 뭔가 찜찜해서 그대로 두었다.
추가 : 변수는 대문자를 쓰지 말고 소문자를 사용하자(네이밍 컨벤션)
'project > project' 카테고리의 다른 글
It'em_is (1) (2) | 2023.05.09 |
---|---|
프로젝트 뭐든태그-ALLTAG (1) (0) | 2023.04.10 |
미니 프로젝트3 : 파이썬으로 게임 만들어보기 (0) | 2023.03.28 |
미니 프로젝트 1 : 우리 조를 소개하기 (3) (0) | 2023.03.17 |
미니 프로젝트 1 : 우리 조를 소개하기 (2) (0) | 2023.03.16 |