Python课程设计 第 23 / 52 篇
名称空间-参考答案
程序设计:
简易王者荣耀
1.设计王者荣耀中的英雄类,每个英雄对象可以对其他英雄对象使用技能
2.英雄具备以下属性英雄名称,等级,血量和Q_hurt,W_hurt,E_hurt 三个伤害属性,表示各技能的伤害量
3.具备以下技能Q W E三个技能都需要一个敌方英雄作为参数,当敌方血量小于等于0时输出角色死亡
"""
简易王者荣耀
1.设计王者荣耀中的英雄类,每个英雄对象可以对其他英雄对象使用技能
2.英雄具备以下属性英雄名称,等级,血量和Q_hurt,W_hurt,E_hurt 三个伤害属性,表示各技能的伤害量
3.具备以下技能Q W E三个技能都需要一个敌方英雄作为参数,当敌方血量小于等于0时输出角色死亡
"""
import random
class Hero:
def __init__(self, name, q_hurt=30, w_hurt=50, e_hurt=70, level=1, life=100):
self.name = name
self.level = level
self.life = life
self.is_alive = True
self.Q_hurt = q_hurt
self.W_hurt = w_hurt
self.E_hurt = e_hurt
self.kill_count = 0
def attack(self, skill, enemy):
if self.name == enemy.name:
return
if enemy.life >= 0:
enemy.life -= skill
if enemy.life <= 0:
enemy.life = 0
enemy.is_alive = False
self.kill_count += 1
print('{}杀死{},击杀数为{}'.format(self.name, enemy.name, self.kill_count))
return enemy.is_alive, self.kill_count
def elevate(self):
if self.kill_count % 5 == 0 and self.kill_count != 0:
self.level += 1
self.Q_hurt += 10
self.W_hurt += 10
self.E_hurt += 10
print('{} 等级提升为 {}'.format(self.name, self.level))
return self.level
obj1 = Hero('小1')
obj2 = Hero('小2')
obj3 = Hero('小3')
obj4 = Hero('小4')
obj5 = Hero('小5')
skill_dict = {
'q_hurt': 30,
'w_hurt': 50,
'e_hurt': 70
}
for i in range(1000):
random_obj1 = random.choice([obj1, obj2, obj3, obj4, obj5])
random_obj2 = random.choice([obj1, obj2, obj3, obj4, obj5])
random_skill = random.choice([skill_dict['q_hurt'], skill_dict['w_hurt'], skill_dict['e_hurt']])
random_obj1.attack(random_skill, random_obj2)
random_obj1.elevate()