【网易官方】极客战记(codecombat)攻略-森林-边地之叉backwoods-fork

使用带参数的自定义函数简化代码!

简介

函数 是编码中的重要概念!将代码中单独的重复部分用函数表示,能使代码变得更加简洁。

函数通常需要 参数 。参数让函数具有更多灵活性,且不妨碍函数优化和简化代码的作用。参数在函数 调用 时被放到圆括号 () 之间。

被调用时的实际参数,在函数定义时同形式参数对应。

# 这个函数拥有一个参数:'target':
def checkAndAttack(target):
    # 'target'是预定义的变量。
    if(target):
        hero.attack(target)
enemy = hero.findNearestEnemy()
# 下面,'enemy'是参数,传递给checkAndAttack作为'target'。
checkAndAttack(enemy)

默认代码

# 使用 checkAndAttack 函数让代码易读。
# 这个函数有一个参数。
# 参数是一种给函数传递信息的方式。
def checkAndAttack(target):
    # 参数'target'只是一个变量!
    # 它包含了函数调用时的参数。
    if target:
        hero.attack(target)
    hero.moveXY(43, 34)
while True:
    hero.moveXY(58, 52)
    topEnemy = hero.findNearestEnemy()
    # 使用 checkAndAttack 函数,并使用 topEnemy 变量。
    checkAndAttack(topEnemy)
    # 移动到底部的X标记处。
    # 创建名为 bottomEnemy 的变量,寻找最近敌人。
    # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。

概览

函数 是代码的重要组成部分,能够将代码分割成独立的部分,帮助我们更好地理解代码。

函数 不仅能够执行独立动作,还能使用传入的参数。

实参 是函数调用时 () 内包含的信息。

形参 则是传入函数的信息在函数内所使用的变量。

# 函数名后面的'target'是'形参'。
# 形参作为新变量,装载从函数外传入的信息。
def checkAndAttack(target):
    # 'target'是形参预定义变量,只在函数内使用。
    if target:# 检验'target'是否存在。
        hero.attack(target) # 若是如此,那就攻击!
enemy = hero.findNearestEnemy()
# 下面的变量enemy是实参。
# 调用函数时使用实参,能够让函数基于输入内容做出不同动作。
# 这里,我们会攻击任意传入函数作为参数的敌人。
hero.checkAndAttack(enemy)

边地之叉 解法

# 使用 checkAndAttack 函数让代码易读。
# 这个函数有一个参数。
# 参数是一种给函数传递信息的方式。
def checkAndAttack(target):
    # 参数'target'只是一个变量!
    # 它包含了函数调用时的参数。
    if target:
        hero.attack(target)
    hero.moveXY(43, 34)
while True:
    hero.moveXY(58, 52)
    topEnemy = hero.findNearestEnemy()
    # 使用 checkAndAttack 函数,并使用 topEnemy 变量。
    checkAndAttack(topEnemy)

 

    # 移动到底部的X标记处。
    hero.moveXY(58, 16)
    # 创建名为 bottomEnemy 的变量,寻找最近敌人。
    bottomEnemy = hero.findNearestEnemy()
    # 使用 checkAndAttack 函数,并使用 bottomEnemy 变量。
    checkAndAttack(bottomEnemy)
 
 
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/12202014.html