import random
class Monster:
def __init__(self, name, level, attack, defense, hp):
self.name = name
self.level = level
self.attack = attack
self.defense = defense
self.hp = hp
self.max_hp = hp
def attack_player(self, player):
damage = max(0, self.attack - player.defense)
player.hp -= damage
print(f"{self.name}攻击了你,你受到了{damage}点伤害!")
class Player:
def __init__(self, name, level, attack, defense, hp):
self.name = name
self.level = level
self.attack = attack
self.defense = defense
self.hp = hp
self.max_hp = hp
def attack_monster(self, monster):
damage = max(0, self.attack - monster.defense)
monster.hp -= damage
print(f"你攻击了{monster.name},{monster.name}受到了{damage}点伤害!")
if monster.hp <= 0:
print(f"{monster.name}已被打败!")
if __name__ == '__main__':
player = Player("Tom", 1, 10, 5, 100)
monster = Monster("Dragon", 1, 20, 3, 200)
while True:
input_str = input("\n请选择要进行的操作:\n1. 攻击怪物\n2. 逃跑\n")
if input_str == "1":
player.attack_monster(monster)
if monster.hp > 0:
monster.attack_player(player)
elif input_str == "2":
print("你选择逃跑,游戏结束!")
break
else:
print("无效的操作,请重新选择。")
if player.hp <= 0:
print("你已被打败,游戏结束!")
break
这段代码使用Python语言实现了一个简单的传奇怪物战斗系统,包括定义了Player
和Monster
类,并在__main__
函数中模拟了一场战斗。
在这个战斗系统中,怪物的攻击力是固定的,但伤害值会受到玩家防御值的影响。同样地,玩家的攻击力也是固定的,但伤害值也会受到怪物防御值的影响。当任何一方的生命值小于等于0时,该方失败,游戏结束。
以上就是传奇怪物根据人物防御固定掉血的代码示例。此代码可供参考或修改,以适应您的具体需求。