> 教程 (Python)
我们已经用过好几个函数和方法(setWeapon、moveToward 等)。你也可以用下面的语法,创建属于自己的自定义函数:
defsomme( x, y ):,然后在下面缩进写出指令块关键字 return 是可选的,用来让函数返回一个值。在上面的例子中,函数接收参数 x 和 y,并返回它们的和:x + y。
在 Python 中,函数必须先定义,后使用。所以要把函数写在文件顶部,放在主代码之前。
canFinish(enemy)我们之前写的判断能否“斩杀”敌人的代码相当长,也不方便复用,所以要把它放进一个函数里。
我们来创建一个自定义函数 canFinish(enemy),它接收一个敌人,并返回一个布尔值,表示能不能把它斩杀。
把斩杀判断的代码复制到一个函数中,写法如下:
现在,我们可以在主代码中使用函数 canFinish,把代码写得简单得多:
你知道吗?把多处重复的同一段代码移进一个函数里,这种做法叫作提取函数。
getClosestCellToUseWeapon(enemy)你可能已经发现,要使用机关枪这把武器(以及之后的激光),你必须和敌人处在同一条直线上。
所以你得走到一个能使用武器的格子上,而不是像用手枪时那样,只是朝敌人靠近。
为此,方法 me.weaponCells(enemy) 会返回所有能对目标使用武器的格子。接下来就要从中挑出一个:最近的那个!
所以我们来创建函数 getClosestCellToUseWeapon,用 for in 循环找出离我们最近的格子:
用它来代替原来的移动:
想更清楚地看到地形和格子,可以在战斗中按 T 键开启战术模式。
在接下来的章节里,我们会讲一些更难的内容。所以不妨花点时间,多摆弄摆弄你的函数和前面学过的知识——光凭这些,就足以让你在排行榜上往上爬了!
要返回一个数的平方,下面哪个函数写得对?
def carre(x): return x * x def carre(x): x * x def carre(): return x * x function carre(x): return x * x
哪个函数能算出列表中的最大值?
def maximum(liste): maxi = -99999 for e in liste: if e > maxi: maxi = e return maxi def maximum(liste): maxi = 99999 for e in liste: if e < maxi: maxi = e return maxi def maximum(liste): maxi = 99999 for e in liste: if e > maxi: maxi = e return maxi def maximum(liste): maxi = -99999 for e in liste: if e < maxi: maxi = e return maxi
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.