读知识首页 >> 动漫游戏 >> 知识详情

火炬之光2代码

2023-11-02

import random

火炬之光2代码

# 创建人物类

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()