1.파이썬 개인 과제
문제점
player_attack_select에서 마나 값 비교 대상을 숫자로 집어넣어서 소모 마나 변경시 변경사항 반영이 어려움
def player_attack_select(self):
elif player.attack_type == '2' and self.mana >= 5:
player.magic_attack(monster)
break
def magic_attack(self, other):
mana_consum = 5
시도해 본 것들
mana_consum을 전역 변수로 선언하고 magic_attack에서 global로 선언하여 값 변경 시도
mana_consum = 999
# 마나 있는 상태로 마법 공격 시도 먼저 if문 돌고 없으면 다음
elif player.attack_type == '2' and self.mana >= mana_consum:
player.magic_attack(monster)
break
# 마나 없는 상태로 마법 공격 시도
elif player.attack_type == '2':
player.magic_attack(monster)
continue
def magic_attack(self, other):
global mana_consum
mana_consum = 5
최초 사용시 마나가 있어도 두 번째 elif문으로 들어가서 마나소모+ 공격을 진행했지만
다음 턴으로 넘어가지 않으면서 다시 턴이 돌아오는 현상 발생
def stage():
global turn
turn = 0
while True:
turn += 1
# 턴 진행수 만큼 회복량 설정
def recovery(self):
self.mana -= self.max_mana
recovery = turn*2
위의 상황을 해결하다 중간에 포기했던 턴의 진행수를 받아오는 함수 작성
해결 방법
알게 된 점
혼자 만드는 짧은 프로젝트에서도 전역변수를 사용하자 변수의 현재 값을 추적하는 일이 상당히 피곤했다.
전역 변수를 사용을 추천하지 않는 이유를 알 수 있었다.
턴의 진행 수 만큼 몬스터의 회복량을 설정하는 방법을 고민했었는데 이걸 응용해서 사용했다.
'개발일지 > TIL' 카테고리의 다른 글
TIL 23-03-30 (0) | 2023.03.30 |
---|---|
TIL 23-03-29 (0) | 2023.03.29 |
TIL 23-03-27 (0) | 2023.03.27 |
TIL 23-03-26 (0) | 2023.03.26 |
TIL 23-03-25 (0) | 2023.03.25 |