【网易官方】极客战记(codecombat)攻略-森林-盗墓者tomb-raider

一座被遗忘的墓地!

简介

记得参数是一种给函数传递信息的方式。它是函数被调用时预定义的变量,包含在 () 内。

def checkAndEat(target):
    if target.type == "fruit":
        hero.eat(target)
    else:
        hero.toss(target)
while True:
    hero.moveUp()
    nearestTree = hero.findNearestTree()
    food = hero.harvest(nearestTree)
    checkAndEat(food)

默认代码

# 森林中一座被遗忘的墓地!
# 但是食人魔紧追不舍。
# 在防御矮人的同时破开坟墓
# 这个函数应该在敌人存在时攻击,否则攻击门!
def checkToDefend(target):
    # 检查`target`是否存在
        # 如果是这样,攻击`target`。
    # 如果没有`target`,使用else去做点别的事
        # 否则攻击 "Door"
    pass
while True:
    enemy = hero.findNearestEnemy()
    checkToDefend(enemy)

概览

是时候填入函数体并用函数让代码简洁明了了!

记住,parameter(参数)是将信息传递到独立函数中的方式。它是一个预定义的变量,包含调用执行时函数之后() 内的内容。参见下列代码,看函数是如何调用的:

# 这里'定义'了一个函数:
def moveUpAndDown():
    hero.moveUp()# 这里是在调用moveUp函数。
    hero.moveDown()# 这里是在调用moveDown函数。
hero.say("我在说话!") #这是在调用say方法。
moveUpAndDown() # 这是在调用自定义的moveUpAndDown方法。

盗墓者 解法

# 森林中一座被遗忘的墓地!
# 但是食人魔紧追不舍。
# 在防御矮人的同时破开坟墓
# 这个函数应该在敌人存在时攻击,否则攻击门!
def checkToDefend(target):
    # 检查`target`是否存在
    if target:
        # 如果是这样,攻击`target`。
        hero.attack(target)
    # 如果没有`target`,使用else去做点别的事
    else:
        # 否则攻击 "Door"
        hero.attack("Door")
while True:
    enemy = hero.findNearestEnemy()
    checkToDefend(enemy)
 
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/12202029.html