「网易官方」极客战记(codecombat)攻略-森林-交给屠夫-leave-it-to-cleaver

大兔子大兔子 提交于 2020-08-08 14:02:30
(点击图片进入关卡)

使用函数参数保卫家园。

简介

函数 cleaveWhenClose 定义了一个参数,叫作 target:

def cleaveWhenClose(target):
    if hero.distanceTo(target) < 5:
        # 在这里cleave或是attack

这能在调用函数时将 enemy 作为参数传给函数:

cleaveWhenClose(enemy)

默认代码

# 这里展示了如何定义一个叫作cleaveWhenClose的函数
# 函数定义了一个参数,名为target
def cleaveWhenClose(target):
    if hero.distanceTo(target) < 5:
        pass
        # 将你的攻击代码放到这里。
        # 如果cleave准备就绪,那就劈斩目标

 

        # 否则,使用attack攻击目标!

 

# 这段代码不是函数的一部分。
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 注意在cleaveWhenClose内部,我们用target指向敌人。
        cleaveWhenClose(enemy)

概览

之前的关卡中,你将参数传递给了函数。在使用 hero.say("Hello!") 时,你将字符串 "Hello!" 作为参数传给了函数 say 。

现在,你要学习定义形式参数,也就是定义函数时的参数。

本关,你要定义一个函数 cleaveWhenClose ,它需要接受参数 target :

def cleaveWhenClose(target):
    if hero.distanceTo(target) < 5:
        # 在这里进行cleave或attack

注意到,之后调用函数用的是:

cleaveWhenClose(enemy)

enemy 是函数外敌人的名称,而 target 是函数内敌人的名称。这两个变量都指向同一个食人魔!

交给屠夫 解法

# 这里展示了如何定义一个叫作cleaveWhenClose的函数
# 函数定义了一个参数,名为target
def cleaveWhenClose(target):
    if hero.distanceTo(target) < 5:
        # 将你的攻击代码放到这里。
        # 如果cleave准备就绪,那就劈斩目标
        if hero.isReady("cleave"):
            hero.cleave()
        # 否则,使用attack攻击目标!
        else:
            hero.attack(target)
# 这段代码不是函数的一部分。
while True:
    enemy = hero.findNearestEnemy()
    if enemy:
        # 注意在cleaveWhenClose内部,我们用target指向敌人。
        cleaveWhenClose(enemy)
 
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-jiaogeitufu
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!