import random

class Player:
def __init__(self, name, health=100, attack=10):
self.name = name
self.health = health
self.attack = attack

def is_alive(self):
return self.health > 0

def take_damage(self, damage):
self.health -= damage

def attack_enemy(self, enemy):
damage = random.randint(1, self.attack)
enemy.take_damage(damage)
print(f"{self.name}이(가) {enemy.name}을(를) 공격하여 {damage}의 피해를 입혔습니다.")


class Enemy:
def __init__(self, name, health=50, attack=8):
self.name = name
self.health = health
self.attack = attack

def is_alive(self):
return self.health > 0

def take_damage(self, damage):
self.health -= damage

def attack_player(self, player):
damage = random.randint(1, self.attack)
player.take_damage(damage)
print(f"{self.name}이(가) {player.name}을(를) 공격하여 {damage}의 피해를 입혔습니다.")


def play_game():
player_name = input("캐릭터의 이름을 입력하세요: ")
player = Player(player_name)
print(f"{player.name}님, 모험을 시작합니다!")

enemies = [Enemy("슬라임"), Enemy("고블린"), Enemy("오크")]
treasure = 100

while player.is_alive():
print("\n--------------------")
print("어디로 가시겠습니까?")
print("1. 미로 탐험하기")
print("2. 휴식하기")
choice = input("선택하세요: ")

if choice == "1":
enemy = random.choice(enemies)
print(f"{player.name}님이 미로 속에서 {enemy.name}을(를) 만났습니다!")
while enemy.is_alive() and player.is_alive():
player.attack_enemy(enemy)
if enemy.is_alive():
enemy.attack_player(player)
if not player.is_alive():
print(f"{player.name}님이 전투에서 패배하였습니다. 게임 오버!")
break
else:
print(f"{enemy.name}을(를) 격파하였습니다! 보물을 획득합니다.")
player.health += treasure
print(f"현재 체력: {player.health}")
elif choice == "2":
player.health += 10
print("휴식을 취하여 체력을 회복하였습니다.")
print(f"현재 체력: {player.health}")
else:
print("잘못된 입력입니다. 다시 선택해주세요.")

print("게임을 종료합니다.")


if __name__ == "__main__":
play_game()