华为云高校联盟活动:Python模拟MOBA手游~精准击杀(完结)
【摘要】 时间宝贵,不要虚掷光阴过他人的生活,不要让周围的聒噪言论蒙蔽你内心的声音。 --乔布斯最后关于MOBA手游便是精准击杀,在MOBA手游中重要性其次于英雄的还有一个小兵,小兵在随着游戏的推进也是在逐渐变强。玩过MOBA类型的小伙伴应该知道,击杀小兵可以获得经验和金币,是英雄提升的一个重要途径。那么击杀小兵获得的经验和金币该如何计算呢?让我们来一起手撕代码吧!1.经验与金币源代码:# Todo:...
时间宝贵,不要虚掷光阴过他人的生活,不要让周围的聒噪言论蒙蔽你内心的声音。
--乔布斯
最后关于MOBA手游便是精准击杀,在MOBA手游中重要性其次于英雄的还有一个小兵,小兵在随着游戏的推进也是在逐渐变强。
玩过MOBA类型的小伙伴应该知道,击杀小兵可以获得经验和金币,是英雄提升的一个重要途径。
那么击杀小兵获得的经验和金币该如何计算呢?让我们来一起手撕代码吧!
1.经验与金币
源代码:
# Todo:补全Hero类
class Hero:
# Todo:初始化属性name, maxHP, maxMP, AD
def __init__(self, name, maxHP, maxMP, AD):
self.name=name
self.maxHP=maxHP
self.maxMP=maxMP
self.AD=AD
# Todo:补全getExp方法 传入参数为:被英雄攻击的【小兵】的生命值,返回值为:获得的经验值。
def getExp(self, HP):
return HP//10
# Todo:补全getMoney方法 传入参数为:被英雄攻击的【小兵】的生命值,返回值为:获得的金币。
def getMoney(self, HP):
return HP//30
'''
#Todo: 输入五行字符,按照顺序依次为Hero类对象的名称(name)、最大生命值(maxHP)、
最大魔法值(maxMP)、攻击力(AD)初始化,【小兵】最大生命值。
根据步骤描述,完成场景设定动作,打印输出结果。
建议最大生命值(maxHP)、最大魔法值(maxMP)、攻击力(AD)、【小兵】最大生命值为整数。
'''
name=input()
maxHP=int(input())
maxMP=int(input())
AD=int(input())
HP=int(input())
# Todo:实例化Hero对象,打印输出结果
hero=Hero(name,maxHP,maxMP,AD)
# Todo : 调用Hero类的getExp()方法,执行获取经验的动作
# Todo:打印输出获取的经验值。
print(hero.getExp(HP))
# Todo :调用Hero类的getMoney()方法,执行获取金币的动作
print(hero.getMoney(HP))
# Todo:打印输出获取的金币。
运行结果:
2.步步高升
源代码:
# Todo:补全Hero类
class Hero:
# Todo:初始化属性name, maxHP, maxMP, AD
def __init__(self, name, maxHP, maxMP, AD):
self.name = name
self.maxHP = maxHP
self.maxMP = maxMP
self.AD = AD
# Todo:补全getExp方法 传入参数为:被英雄攻击的【小兵】的生命值,返回值为:获得的经验值。
def getExp(self, HP):
return HP//10
# Todo:补全getMoney方法 传入参数为:被英雄攻击的【小兵】的生命值,返回值为:获得的金币。
def getMoney(self, HP):
return HP//30
'''
#Todo: 输入五行字符,按照顺序依次为Hero类对象的名称(name)、最大生命值(maxHP)、
最大魔法值(maxMP)、攻击力(AD)初始化,【小兵】最大生命值。
根据步骤描述,完成场景设定动作,打印输出结果。
建议最大生命值(maxHP)、最大魔法值(maxMP)、攻击力(AD)、【小兵】最大生命值为整数。
'''
name=input()
maxHP=int(input())
maxMP=int(input())
AD=int(input())
HP=int(input())
# Todo:实例化Hero对象,打印输出结果
hero=Hero(name,maxHP,maxMP,AD)
# Todo : 调用Hero类的getExp()方法,执行获取经验的动作,最后一击额外获得20%经验
print(int(hero.getExp(HP)*1.2))
# Todo:打印输出获取的经验值。
# Todo :调用Hero类的getMoney()方法,执行获取金币的动作,最后一击额外获得20%金币
print(int(hero.getMoney(HP)*1.2))
# Todo:打印输出获取的金币。
运行结果:
3.高级ATM
源代码:
# Todo:补全Hero类
class Hero(object):
# Todo:初始化属性name, maxHP, maxMP, AD
def __init__(self, name, maxHP, maxMP, AD):
self.name = name
self.maxHP = int(maxHP)
self.maxMP = int(maxMP)
self.AD = int(AD)
# Todo:补全getExp方法 传入参数为:被英雄攻击的目标的生命值,获取1经验值需要的生命值,返回值为:获得的经验值。
def getExp(self, HP, count):
result = 0
result = int(HP / count)
return result
# Todo:补全getMoney方法 传入参数为:被英雄攻击的【小兵】的生命值,获取1金币需要的生命值,返回值为:获得的金币。
def getMoney(self, HP, count):
result = 0
result = int(HP / count)
return result
'''
#Todo: 输入七行字符,
按照顺序依次为Hero类对象的名称(name)、最大生命值(maxHP)、最大魔法值(maxMP)、
攻击力(AD)初始化,两个【小兵】最大生命值,B英雄的生命值
建议最大生命值(maxHP)、最大魔法值(maxMP)、攻击力(AD)、【小兵】最大生命值、B英雄的生命值为整数。
'''
h_name = input()
h_maxHP = input()
h_maxMP = input()
h_AD = input()
m_maxHP01 = int(input())
m_maxHP02 = int(input())
h_maxHP02 = int(input())
# Todo:实例化Hero对象
hero = Hero(h_name, h_maxHP, h_maxMP, h_AD)
# Todo : 调用Hero类的getExp()方法,执行获取经验的动作,击杀小兵及英雄,最后一击额外获得20%经验
resultExp01 = hero.getExp(m_maxHP01 + m_maxHP02, 10)
resultExp02 = hero.getExp(h_maxHP02, 20)
resultExp = int(resultExp01 * 1.2) + int(resultExp02 * 1.2)
# Todo:打印输出获取的经验值。
print(resultExp)
# Todo :调用Hero类的getMoney()方法,执行获取金币的动作,击杀小兵及英雄,最后一击额外获得20%金币
resultMoney01 = hero.getMoney(m_maxHP01 + m_maxHP02, 30)
resultMoney02 = hero.getMoney(h_maxHP02, 20)
resultMoney = int(resultMoney01 * 1.2) + int(resultMoney02 * 1.2)
# Todo:打印输出获取的金币。
print(resultMoney)
运行结果:
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)