山峰_诱骗耗牛_yak-heist

发布于 2020年2月7日
(点击图片进入关卡)

大树妖需要个诱饵!找到一个高于平均大小的牦牛作为树妖 Majorus 的陷阱!

简介

Senick 需要为树妖 Majorus 设置陷阱!

一个大洞需要一个大陷阱… 大诱饵!找到最接近的,平均大小以上的沙牦牦牛诱骗。

默认代码

# Senick需要大的诱饵才能抓到大树精!
# 帮助Senick找到高于平均大小的牦牛!
# 不要在牛群中选择太深入的一个,否则会冒着激怒团队的危险。
# 这个函数应该返回所有牦牛的平均大小:
def averageSize(yaks):
    sum = 0
    # 检查每个牦牛,并把它的大小加到总和中。

    return sum / yaks.length
yaks = hero.findEnemies()
avgSize = averageSize(yaks)
bestYak = None
closestDist = 9999
for i in range(len(yaks)):
    yak = yaks[i]
    yakDistance = hero.distanceTo(yak)
    yakSize = yak.size
    # 检查是否耗牛是:
    # 距离比当前的“closestDist”更近。
    # 大小比“avgSize”大。

        # 更新 'bestYak' 和 'bestYak'

# 说'bestYak':

概览

在这一关卡上,你需要根据牦牛的平均大小,找到最好的牦牛。

找到最好的牦牛不再是寻找最接近或最大的问题,而是英雄必须将这两个属性结合在一起才能找到最佳选择! 不要将检查距离定为唯一,一定要检查牦牛的 avgSize ,所以 Senick 不会抓住一个小牦牛。

要找到 avgSize ,一定要填写 avg 功能! 记住如何找到一个平均值:

enemies = hero.findEnemies()
sum = 0
for i in range(len(enemies)):
    sum += enemies[i].health
avg = sum / enemies.length
hero.say("The average health of my enemies isL: " + avg)

诱骗耗牛解法

# Senick需要大的诱饵才能抓到大树精!
# 帮助Senick找到高于平均大小的牦牛!
# 不要在牛群中选择太深入的一个,否则会冒着激怒团队的危险。
# 这个函数应该返回所有牦牛的平均大小:
def averageSize(yaks):
    sum = 0
    # 检查每个牦牛,并把它的大小加到总和中。
    for i in range(len(yaks)):
        yak = yaks[i]
        sum += yak.size
    return sum / yaks.length
yaks = hero.findEnemies()
avgSize = averageSize(yaks)
bestYak = None
closestDist = 9999
for i in range(len(yaks)):
    yak = yaks[i]
    yakDistance = hero.distanceTo(yak)
    yakSize = yak.size
    # 检查是否耗牛是:
    # 距离比当前的“closestDist”更近。
    # 大小比“avgSize”大。
if yakSize > avgSize and yakDistance < closestDist:
        # 更新 'bestYak' 和 'bestYak'
        bestYak = yak
        closestDist = yakDistance
# 说'bestYak':
hero.say(bestYak)