파이썬을 이용해서 게임을 만들어보는 과재 하는중에
혼자하는 코딩이다보니 다른 사람한테 물어보지 말고 나 혼자서 해결해 보자는 심보로 막히는부분이 있어도 한참 생각을하고 구글링을하고 그래도 막히는 부분이 있다면 강의를 다시 듣는식으로 진행했다
클래스를 활용해서 만들어보는 게임이다보니
클래스를 다루는게 굉장히 어색해서 여러가지 문제를 겪었다
처음에는
class monster():
def __init__(self,name,hp,power,alive):
self.name = name
self.hp = hp
self.power = power
self.alive = alive
이런 몬스터 틀을 만들고 나서
Class dog_monster(monster)
같은 식으로 인스턴스를 사용해 몬스터를 임의 생성해보려고했다
호기롭게 진행하다가 이런 오류를 만났다
AttributeError: type object 'monster' has no attribute 'alive'
분명 dog_class 에도 alive 를 줬는데 라고 생각하다 또 고민에 빠졌다
이런저런 시도를 하다가 어떻게 성공한지도 모른체
결국 성공은 했는데 이런 문제가 생겼다
몬스터 2 를 선택해서 몬스터2를 생성했는데 몬스터2의 hp는 120인데
자꾸 100으로 출력이되는것이다
또 한참 고민에 빠졌다
검색을 여러번 하다가 알게됐는데 class 인스턴스를 아주 잘못쓰고있었다
내가 만들고있는게 인스턴스가 아니라 그냥 클래스를 여러번 만들고있던것이었다
몬스터를 생성 , 선택할때
print("세갈래 길에 도착했습니다 어떤 길로 가시겠습니까 1.오른쪽 2.왼쪽 3.중앙: ")
select_num = int(input(" "))
if select_num == 1:
monster = monster('dog',100,random.randint(10, 20), True)
print("개 몬스터가 튀어나왔다")
elif select_num == 2:
monster = monster('cat',120,random.randint(15, 25), True)
print("고양이 몬스터가 튀어나왔다")
elif select_num == 3:
monster = monster('boss', 150, 30, True)
print("보스 몬스터가 튀어나왔다")
else:
print("잘못된 입력입니다.")
exit()
이렇게으로 바꿔보니 이제 정상적으로 작동하는거같다
내 힘으로 했다기보다 구글링으로 문제를 해결한거같아 이렇게 해결하는게맞는건가 ? 싶은 생각이 든다
문제가 생겼을때는 알아보고 해결하고 다시해보고 내가 먼저 문제를 알아볼때까지 열심히 노력해봐야겠다