极客战记怎么换成java_「网易官方」极客战记(codecombat)攻略-沙漠-疯狂的Maxer...

2b518c7b051a396fcc29a2bb026bfed5.png

写点聪明的代码来追赶远方的敌人。

简介

6bc000c3d9d673e0af72b5b00a602a68.png

烦人的诱饵扰乱你的视线。

寻找最远的敌人,因为诱饵会缠绕在你身边。

最远的敌人有最大的 distanceTo 。

默认代码

# 优先杀掉最远的敌人。

while True:

farthest = None

maxDistance = 0

enemyIndex = 0

enemies = hero.findEnemies()

# 查看全部敌人,找出最远的那个。

while enemyIndex < len(enemies):

target = enemies[enemyIndex]

enemyIndex += 1

# 是不是存在远得看不到的敌人?

distance = hero.distanceTo(target)

if distance > maxDistance:

maxDistance = distance

farthest = target

if farthest:

# 干掉最远的敌人!

# 如果敌人血量大于0就保持攻击。

pass

概览

这关的目标是首先瞄准最远的敌人。因为那才是攻击你的敌人,而其他的诱饵靠得很近。

示例代码告诉你怎么完成任务:使用 while 循环遍历敌人数组。

将 maxDistance 初始化为 0,这样第一个敌人怎样都比它远。

然后,对于数组里的每个敌人,你要把它的距离和 maxDistance 比较,如果大了,就把这个距离设置为 maxDistance ,并将对应的敌人赋值给 farthest 变量。

当你遍历完数组时, farthest 就包含了有最大距离的敌人。

然后,使用另一个循环在敌人生命值大于 0 时攻击。

疯狂的 Maxer解法

# 优先杀掉最远的敌人。

while True:

farthest = None

maxDistance = 0

enemyIndex = 0

enemies = hero.findEnemies()

# 查看全部敌人,找出最远的那个。

while enemyIndex < len(enemies):

target = enemies[enemyIndex]

enemyIndex += 1

# 是不是存在远得看不到的敌人?

distance = hero.distanceTo(target)

if distance > maxDistance:

maxDistance = distance

farthest = target

if farthest:

# 干掉最远的敌人!

# 如果敌人血量大于0就保持攻击。

while farthest.health > 0:

hero.attack(farthest)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值