华为云高校联盟活动:Python模拟MOBA手游~防御塔
【摘要】 领袖和跟风者的区别就在于创新。——乔布斯呼,大家好啊,前几天参加了华为云开发者大会,也去了TVP数据冰与火之歌的大会,总的收获蛮丰富的。这里继续分享之前的华为云青年班MOBA手游活动。这一节是防御塔,防御塔的机制在游戏中也只能算一个工具人,但作用绝非一个工具人所能比拟。关于防御塔,在游戏的不同阶段,玩家围绕防御塔可以有多种战术,充分利用防御塔的优势有时可以有意想不到的效果。比如防御塔可以清理...
领袖和跟风者的区别就在于创新。——乔布斯
To:本次活动文章写完后小编准备开始为大家带来一篇关于小白电脑知识的入门篇,嘻嘻,相信很快就会和大家见面哦。
1.防御塔矗立
源代码:
# Todo:补全Tower类
class Tower:
# Todo:初始化属性name, location, AD, ADSpace攻击间隔默认2秒钟
def __init__(self, name, location, AD):
self.name=name
self.location=location
self.AD=AD
self.ADSpace=2
# Todo:在Tower类中打印输出属性的值
print("Tower:{0},{1},{2},{3}".format(self.name,self.location,self.AD,self.ADSpace))
# Todo: 输入三行字符,按照顺序依次为对象的名称(name)、位置(location)、攻击力(AD)初始化、攻击间隔默认2秒钟
name=input()
location=input()
AD=input()
# Todo:实例化Tower对象,打印输出结果
tower=Tower(name,location,AD)
运行结果:
2.防御塔反制
源代码:
# Todo:补全Tower类
class Tower:
# Todo:初始化属性name, location, AD, ADSpace攻击间隔默认2秒钟
def __init__(self, name, location, AD):
self.name = name
self.location = location
self.AD = AD
self.ADSpace = 2
# Todo: 补全attack()方法,
# 传入参数为:攻击目标的生命值,
# 返回值:攻击目标的剩余生命值。
def attack(self, number):
return number-AD
# Todo: 输入四行字符,按照顺序依次为Tower类对象的名称(name)、位置(location)、攻击力(AD)、攻击目标的生命值
name=input()
location=input()
AD=int(input())
number=int(input())
# Todo:实例化Tower对象
tower=Tower(name,location,AD)
# Todo:调用atta计算防御ck方法,塔攻击的次数、击杀目标所消耗的时间。
# Todo:打印输出防御塔攻击的次数、击杀目标所消耗的时间。
count=0
while number>0:
number=tower.attack(number)
count+=1
print(count)
print((count-1)*tower.ADSpace)
运行结果:
3.防御塔闪耀
源代码:
import random
# Todo:补全Tower类
class Tower(object):
# Todo:初始化属性name, location, AD, ADSpace攻击间隔默认2秒钟
def __init__(self, name, location, AD):
self.name = name
self.location = location
self.AD = int(AD)
self.ADSpace = 2;
# Todo: 补全attack()方法,
# 传入参数为:攻击目标的生命值,
# 返回值:攻击目标的剩余生命值。
def attack(self, number):
result = 0
if number - self.AD > 0:
result = number - self.AD
return result
# Todo: 输入四行字符,按照顺序依次为Tower类对象的名称(name)、位置(location)、攻击力(AD)、攻击目标的生命值
t_name = input()
t_location = input()
t_AD = input()
t_number = int(input())
# Todo:实例化Tower对象
tower = Tower(t_name, t_location, t_AD)
# Todo: 调用attack方法,计算防御塔攻击的次数、击杀目标所消耗的时间。
# 防御塔每攻击一次需要随机生成叠加伤害比率,在50%~60%之间浮动
result = t_number
count = 0
while result > 0:
result = tower.attack(result)
count = count + 1
number = int((random.random() + 5) * 10) / 100
tower.AD = tower.AD * (1 + number)
times = (count - 1) * tower.ADSpace
# Todo:打印输出防御塔攻击的次数、击杀目标所消耗的时间。
print(count)
print(times)
运行结果:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)