오늘은 개인과제를 진행 하였다.
파이썬으로 간단한 게임을 구현하는 건데 기본 가이드가 주어진 상태라 수월하게 할 수 있었다.
더보기
클래스 안에서 재귀함수 부르기
Charactor 클래스의 skill함수를 구현할때 스킬 선택 (1.Normal Attack 2.Magic Attack 3.Defense) 에서 1, 2, 3,을 제외한 번호를 눌렀을대 다시 불러오기 위함이다.
class 클래스():
func(self):
return self.func()
# 여기서 self. 없이 그냥 func() 또는 return func()만 하면 오류가난다!
더보기
문제가 생겼던 부분
def attack(self, other):
damage = self.power
...
def skill(self):
if self.occupation == "전사":
set = input("스킬 선택 (1.일반공격 2.마법공격 3.방어하기 4.hp회복) : ")
if set == '1':
self.power = random.randrange(
self.power - 2, self.power + 2)
elif set == '2':
if self.mp > 0:
self.mp = max(self.mp - 25, 0)
self.power = random.randrange(
self.power, self.power + 10)
...
- 의도한것 : skill함수에 랜덤한 파워를 self.power에 저장하고 그것을 다시 attack함수에서 damage에 저장해 hp를 계산하려고함
- 놓친것 : self.power에 저장해버리니까 처음에 고정해뒀던 값(예:10)이 처음값이 아닌 다른 수로 저장이 되버림. 그래서 마법공격 후 일반 공격을 하면 10 +- 2 의 수치가 넘어버렸음
- 해결방법 : self.power에 저장하는것이 아닌 클래스 내에 new_power라는 변수를 만들어주고 이것에 넣어줌. 그후 damage에도 new_power을 넣어줌으로써 해결
'내일 배움 캠프 > TIL' 카테고리의 다른 글
TIL) 3주차 3일 (0) | 2023.03.29 |
---|---|
TIL) 3주차 2일 (0) | 2023.03.29 |
TIL) 2주차 5일 (2) | 2023.03.24 |
TIL) 2주차 4일 (0) | 2023.03.23 |
TIL) 2주차 3일 (1) | 2023.03.22 |