zoukankan      html  css  js  c++  java
  • 【网易官方】极客战记(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)
     
     
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    luogu P4779 【模板】单源最短路径(标准版)| dijkstra
    luogu P1160 队列安排 | 链式前向星
    luogu P1996 约瑟夫问题 | 链表
    luogu P3386 【模板】二分图匹配 | 匈牙利算法
    luogu P3366 【模板】最小生成树 | kruskal
    luogu P3378 【模板】堆
    luogu P3372 【模板】线段树 1
    luogu P1776 宝物筛选_NOI导刊2010提高(02) | 多重背包(二进制拆分)
    luogu P1616 疯狂的采药 | 完全背包
    luogu P1588 丢失的牛 | 宽搜
  • 原文地址:https://www.cnblogs.com/codecombat/p/12355656.html
Copyright © 2011-2022 走看看