게임의 기본 원리에 대해 간단히 이해해보자. 왕자가 게임에서 싸울때 100점 만점으로 살아있고 0점 이하로 떨어지면 죽는다고 가정하자.
1. 게임의 시작: hp = 100
클래스로 왕자라고 이름을 만들어 준다. hp=100으로 시작하고 살아있기 때문에 alive = True 라고 볼 수 있다. 0 밑으로 떨어져서 죽는경우 alive = False 가 된다.
class Prince():
hp = 100
alive = True
2. 공격: hp = hp - attack
이때 적은 (damage)라는 함수를 가지고, 있어서 공격 (attack) 을 받으면 내가 맞은 것이기 때문에 내 hp 가 (self, attack): 공격만큼 줄어들거야 라고 할 수 있다. 여기서 내 hp가 attack 만큼 줄어 들거야 (self.hp = self.hp - attack), 그런데 여기서 내 "hp가" 라고 이야기 하고 싶으면, "self" 라고 지정해줘야 함수에서 원하는 hp를 지정할 수 있다.
만약, 공격을 계속 당해서 내 hp가 100에서 0 이하로 떨어지면, 살아있는 것이 아닌 것이 됨으로 alive를 False 로 바꾸라고 (alive = False) 알려준다. 이때도 "self" 라고 지정해줘야 함수에서 원하는 개체의 hp가 줄어들기에 (self.alive = False) 라고 해준다.
def damage(self, attack):
self.hp = self.hp - attack
if self.hp < 0:
self.alive = False
3. 사살확인: status_check(self)
살았는지 죽었는지 확인하기 위해서 현재상태_확인: status_check(self) 함수를 사용해보자. if 만약 살아있다면 '살아있다' 라는 값을 출력해 보여주고, else 아니라면 '죽었다'는 값을 출력해 보여줘 라고 부탁해보자.
def status_check(self):
if self.alive:
print('살아있다')
else:
print('죽었다')
4. 여러 플레이어들의 status 관리
두개의 함수 아래 m1 이라는 프린스에게 m1.damage 를 120 만큼 주고 status_check()를 하니, 100-120 으로 0 이하로 떨어져 죽었다고 나온다. m2 이라는 프린스에게 m2.damage 를 90 만큼 주면 100-90 이니 10이 남았으니 살았다고 나온다.
m1 = Prince()
m1.damage(120)
m1.status_check()
m2 = Prince()
m2.damage(90)
m2.status_check()
'개발일기 [Python 파이썬]' 카테고리의 다른 글
[Python str & int] 파이썬 str(문자) int(숫자) (0) | 2024.02.21 |
---|---|
프로그래밍 언어에는 각 언어에 맞는 코드 컨벤션이 존재 (0) | 2024.02.21 |
[Python map, filter, lambda] 파이썬 맵, 람다, 필터 (0) | 2024.02.20 |
[Python 함수 def ] 파이썬 긴 코드 짧게 만들어주는 함수 def , [파이썬] return 과 print의 차이점 (0) | 2024.02.20 |
[Python 기호] 파이썬에 자주 사용되는 기호들: {} [] "" '' : (0) | 2024.02.20 |