오류 및 해결
1.Monster라는 함수값을 줘서 Player에게 공격을 해야하는데 공격이 안되는 오류

Error가 뜨는 부분은 power 부분이다.
그러면 Monster 공격하는 부분에서 오류가 발생했다는 건데..

확인해보니 내가 몬스터한테 일반공격 값으로
normal_attack 이라는 함수를 넣어놨는데 Player와 같은 Power 값으로 줘버렸다.

값을 바꿔주니 공격을 한다.!
2. 들여쓰기 오류

처음 attack함수에게 self 라는 함수 값을 안넣고 이 함수가 작동을 안해서 엄청 헤메고 있었다.
내가 정의를 했는데 왜 실행을 안하지? 라는 생각으로
어떻게 하면 실행을 시킬수 있는지 처음 부터 함수를 읽어보니
attack의 함수는 Player의 공격 함수 즉 self와 연결을 시켜야 된다라는 걸 생각했다.

self 값을 넣어줬는데 self가 역할을 하지 않는다.. 잘못 넣었나 싶어
다른 Player를 넣어도보고 attack이라는 함수값이 틀렸는지 다른값으로 바꿔봐도 똑같았다.
이때부터 멘붕..

이때 다지우고 다시 넣으니깐 됐다.. 왜 오류가 났는지 알아보니
들여쓰기 실수 였다.
attack 함수를 class 함수 내부로 연결 시켰던 것이 였다.
이렇게 단순한 문제로 많은 시간을 허비 했지만 다행이 알아내서 내심 좋았다.
3.함수 호출
battle 함수가 작동하지 않아 위 와같은 오류라고 생각했다.
하지만 위와같은 방법으로는 안될거 알기에 다른 방법으로 실행해야된다고 생각을 했는데
어떻게 호출 해서 battle 실행 할까 생각했는데 내가 만든 함수 그대로 실행 하면 되겠다라고 생각하고
넣어보니 작동을 안했다.
wile문 밑에 도 넣어보고 맨밑에도 넣어보고 다했는데 작동을 안했다.
그런데 vs 코드를 껏다 키니 작동을 했다.


이 함수값을 어디다가 넣는지 나는 자세히 잘모른다.
알아봐도 마땅히 이와 관련된애기는 크게 이해가 되지않았다.
다른 사람에게 배움을 청해야겠다고 생각하고 알아보니
내가 정의를 했으면 끝난부분에 함수값을 호출해야 된다는 라는게
당연하게 생각하는 부분이 였던점에서
다소 허무했다.
새로 배운것
class 상속이라는걸 처음 써봣는데 강의에서 보던거랑 직접쓰는거랑 확실 다른 배움이였다.
밑에 Player= ~~ 이라고 직접 상속을 걸었는데 처음엔 이걸 전부다? 라는 생각으로 했지만 지금은 확실히 이부분에
이해했다.
class Player:
def __init__(self, name, hp, mp, power, normal_attack, magic_power, magic_attack):
self.name = name
self.hp = hp
self.mp = mp
self.power = power
self.normal_attack = normal_attack
self.magic_power = magic_power
self.magic_attack = magic_attack
name = input("플레이어의 이름을 입력하세요: ")
hp = random.randint(50, 100)
mp = random.randint(20, 50)
power = random.randint(10, 20)
normal_attack = random.randint(1, 5) (여기 문자를 넣으면 문자로 인식해서 에러가 뜸)
magic_power = random.randint(5, 10)
magic_attack = random.randint(3, 10) (//)
player = Player(name, hp, mp, power, normal_attack, magic_power, magic_attack)
# 몬스터 생성
name = "이세계_슬라임"
hp = random.randint(50, 100)
normal_attack = random.randint(1, 3) (여기도 문자를 넣으면 에러가 뜬다.)
#f"젤리던지기{random.randint(1,3)}" 이렇게 값을 넣으니 오류가떳다.
# 생성된 몬스터 정보 출력
print(f"몬스터 이름: {monster.name}")
print(f"체력: {monster.hp}")
print(f"일반공격: {monster.normal_attack}")
댓글