요구 사항
– 이름을 입력하여 플레이어를 생성할 수 있어야 합니다.
– 몬스터는 무작위로 생성되어야 합니다.
– while 루프로 종료 조건이 충족될 때까지 턴제 플레이어와 몬스터 간의 전투를 반복해야 합니다.
– 플레이어는 공격 유형을 선택할 수 있어야 합니다.
예) “일반 공격”, “마법 공격”.
– 몬스터는 일반 공격을 사용할 수 있어야 합니다.
– 플레이어 및 몬스터 상태 정보는 각 전투 중에 제공되어야 합니다.
– 모든 공격은 캐릭터의 힘에 따라 무작위로 이루어져야 합니다.
예) 힘이 10일 경우 일반공격은 8~12 사이의 임의의 값으로 공격
– 몬스터나 플레이어의 HP가 0이 되면 전투를 종료하고 승패를 선언해야 합니다.
기본 가이드
1. 시작
– 플레이어 생성(플레이어)
– 성
– PS
-MP
– 성능
– 일반 공격
– 마법의 힘
– 마법 공격
– 몬스터 생성(몬스터)
– 성
– PS
– 일반 공격
2차전
– 몬스터와의 턴제 전투(리플레이 중)
– 플레이어, 몬스터 상태 출력
– 플레이어가 선택한 공격 방식(Normal, Magic)
– 플레이어 공격
– 몬스터 공격
3. 끝
– 승패
알아채다
class Character:
"""
모든 캐릭터의 모체가 되는 클래스
"""
def __init__(self, name, hp, power):
self.name = name
self.max_hp = hp
self.hp = hp
self.power = power
def attack(self, other):
damage = random.randint(self.power - 2, self.power + 2)
other.hp = max(other.hp - damage, 0)
print(f"{self.name}의 공격!
{other.name}에게 {damage}의 데미지를 입혔습니다.
")
if other.hp == 0:
print(f"{other.name}이(가) 쓰러졌습니다.
")
def show_status(self):
print(f"{self.name}의 상태: HP {self.hp}/{self.max_hp}")
여기 other.hp왜 최대()하나쯤 있을까 싶었는데
파이썬 최대 최소 함수는 두 개 이상의 값을 취하고 그 중 가장 크거나 작은 값을 반환합니다.
목록나 튜플또는 선도 가능!
배꼽 게임 알아채다의 경우, other.hp 손상그리고 0 더 큰 값을 반환하려면
이는 피해를 입은 HP 값이 음수로 보고되지 않도록 하기 위함입니다.