华为云高校联盟活动:Python模拟MOBA手游~精准击杀(完结)

举报
小Bob来啦 发表于 2021/04/29 00:17:46 2021/04/29
【摘要】 时间宝贵,不要虚掷光阴过他人的生活,不要让周围的聒噪言论蒙蔽你内心的声音。 --乔布斯最后关于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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。