Python模拟MOBA手游~精准击杀
2021年04月28日 23:48 __ _ _ _ _

时间宝贵,不要虚掷光阴过他人的生活,不要让周围的聒噪言论蒙蔽你内心的声音。
--乔布斯

最后关于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)
运行结果:

已完结


为你,千千万万遍.
往期推荐:
C++系列:链接器是如何工作的 2021-04-07
C++系列:编译器是如何工作的 2021-04-05
C++系列:Visual Studio(VS)2019登录不上? 2021-03-26
一键三连,就差你了
预览时标签不可点
阅读
__
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小Bob的博客!











