import random
# 创建人物类
class Character:
def __init__(self, name, level=1):
self.name = name
self.level = level
def level_up(self):
self.level += 1
# 创建玩家类,继承自人物类
class Player(Character):
def __init__(self, name, level=1, exp=0, hp=100, mp=100):
super().__init__(name, level)
self.exp = exp
self.hp = hp
self.mp = mp
def gain_exp(self, exp):
self.exp += exp
if self.exp >= self.level * 10: # 经验达到升级所需经验
self.level_up()
self.exp = 0
self.hp = 100
self.mp = 100
def attack(self, enemy):
damage = random.randint(5*self.level, 10*self.level) # 随机产生攻击伤害
enemy.hp -= damage
if enemy.hp <= 0:
self.gain_exp(enemy.level * 10) # 获得经验
# 创建敌人类,继承自人物类
class Enemy(Character):
def __init__(self, name, level=1, hp=50, mp=50):
super().__init__(name, level)
self.hp = hp
self.mp = mp
def attack(self, player):
damage = random.randint(5*self.level, 10*self.level) # 随机产生攻击伤害
player.hp -= damage
# 创建游戏类
class Game:
def __init__(self):
self.player = None
self.enemy = None
def create_player(self, name):
self.player = Player(name)
def create_enemy(self, name):
self.enemy = Enemy(name)
def play_game(self):
while self.player.hp > 0 and self.enemy.hp > 0:
self.player.attack(self.enemy)
self.enemy.attack(self.player)
print(f"{self.player.name} 攻击 {self.enemy.name},造成 {self.player.level*10} 点伤害")
print(f"{self.enemy.name} 攻击 {self.player.name},造成 {self.enemy.level*10} 点伤害")
if self.player.hp > 0:
print(f"{self.player.name} 获得胜利")
else:
print(f"{self.enemy.name} 获得胜利")
# 创建游戏对象
game = Game()
# 创建玩家对象
game.create_player("小明")
# 创建敌人对象
game.create_enemy("怪物")
# 开始游戏
game.play_game()