(点击图片进入关卡)
使用函数参数保卫家园。
简介
函数 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
https://codecombat.163.com/news/jikezhanji-jiaogeitufu
来源:oschina
链接:https://my.oschina.net/u/4441837/blog/4312989