본문 바로가기

내일 배움 캠프/TIL

TIL) 3주차 1일

오늘은 개인과제를 진행 하였다.

파이썬으로 간단한 게임을 구현하는 건데 기본 가이드가 주어진 상태라 수월하게 할 수 있었다.

 

더보기

클래스 안에서 재귀함수 부르기

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