其他分享
首页 > 其他分享> > 【网易官方】极客战记(codecombat)攻略-森林-返回Agrippa_agrippa-returned

【网易官方】极客战记(codecombat)攻略-森林-返回Agrippa_agrippa-returned

作者:互联网

用上高级函数,你的代码胜似流水。

简介

就像在之前的 Agrippa Defense 关卡中一样,您将重放相同的场景,但具有更高级的功能。

你可以使用一个函数来计算一个值,然后 返回 它可以在你的代码中使用它。

def triple(a):     b = a + a + a;     return b; hero.say("3 × 3 = " + triple(3)) hero.say("4 × 3 = " + triple(4))

默认代码

def enemyInRange(enemy):     # 如果敌人少于5个单位,返回一个true值

 

    return False def cleaveOrAttack(enemy):     if hero.isReady('cleave'):         hero.cleave(enemy)     else:         hero.attack(enemy) while True:     enemy = hero.findNearestEnemy()     if enemy:         # 调用 enemyInRange 检查敌人的距离。         if enemyInRange(enemy):             cleaveOrAttack(enemy)

概览

在之前的 Agrippa Defense 级别中,我们通过使用函数来提取逻辑来简化我们的代码。在这个级别中,我们使用一个函数来计算一个值并将其传回给调用代码。

在这个级别中,我们会进行一次距离检查,以便我们只能对抗靠近我们的食人魔:

while True:     enemy = hero.findNearestEnemy()     if enemy:         distance = hero.distanceTo(enemy)         if distance < 5:             cleaveOrAttack(enemy)

我们可以通过将距离检查放在自己的函数中来使代码更清晰。 函数 return true 或 false 值,所以我们可以决定是否攻击:

while True:     enemy = hero.findNearestEnemy()     if enemy:         if enemyInRange(enemy):             cleaveOrAttack(enemy)

当你有一个函数计算一个值时,使用 return 关键字来结束这个函数并且把一个值发回给调用者:

def triple(a):     b = a + a + a;     return b; hero.say("3 × 3 = " + triple(3)) hero.say("4 × 3 = " + triple(4))

返回 Agrippa 解法

def enemyInRange(enemy):     # 如果敌人少于5个单位,返回一个true值     distance = hero.distanceTo(enemy)     if distance < 5:         return True     else:         return False def cleaveOrAttack(enemy):     if hero.isReady('cleave'):         hero.cleave(enemy)     else:         hero.attack(enemy) while True:     enemy = hero.findNearestEnemy()     if enemy:         # 调用 enemyInRange 检查敌人的距离。         if enemyInRange(enemy):             cleaveOrAttack(enemy)     本攻略发于极客战记官方教学栏目,原文地址为: https://codecombat.163.com/news/jikezhanji-fanhuiagrippa 极客战记——学编程,用玩的!

标签:codecombat,极客,return,enemy,cleaveOrAttack,enemyInRange,hero,战记,def
来源: https://www.cnblogs.com/codecombat/p/12355656.html