「网易官方」极客战记(codecombat)攻略-沙漠-毒气攻击-gas-attack

(点击图片进入关卡)

清扫深谷,但别让爆炸伤及你的朋友!

简介

农民被困在峡谷中,但我们只有一门毒药炮。

找到 敌人生命值的总和 ,告诉他们开火需要多少的毒药!

如果用了太多毒药,农民也会中毒身亡!

默认代码

# 计算所有食人魔的总生命值。

 

def sumHealth(enemies):
    # 创建一个变量,将它设为0后开始运算
    totalHealth = 0
    # 初始化循环索引为0
    enemyIndex = 0
    # 當 計數 小于敌人數列長度的時候

 

        # 将当前敌人的生命值添加到总生命值里

 

        # 让 index 递增

 

    return totalHealth

 

# 使用加农炮来打败食人魔。
cannon = hero.findNearest(hero.findFriends())
# 加农炮可以穿透墙壁。
enemies = cannon.findEnemies()
# 计算食人魔生命值的总和。
ogreSummaryHealth = sumHealth(enemies)
hero.say("使用 " + ogreSummaryHealth + " 克。")

概览

我们经常要把很多对象的一些属性相加。

为了计算总和,我们遍历所有对象,将需要的属性值加到 累加器(accumulator) 中:

coins = hero.findItems()
totalValue = 0 # 累加器
index = 0
while index < len(coins):
    totalValue = coins[index].value
    index += 1

毒气攻击解法

# 计算所有食人魔的总生命值。

 

def sumHealth(enemies):
    # 创建一个变量,将它设为0后开始运算
    totalHealth = 0
    # 初始化循环索引为0
    enemyIndex = 0
    # 當 計數 小于敌人數列長度的時候
    while enemyIndex<enemies.length:
        # 将当前敌人的生命值添加到总生命值里
        totalHealth += enemies[enemyIndex].health
        # 让 index 递增
        enemyIndex += 1
    return totalHealth

 

# 使用加农炮来打败食人魔。
cannon = hero.findNearest(hero.findFriends())
# 加农炮可以穿透墙壁。
enemies = cannon.findEnemies()
# 计算食人魔生命值的总和。
ogreSummaryHealth = sumHealth(enemies)
hero.say("使用 " + ogreSummaryHealth + " 克。")
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/13500467.html