zoukankan      html  css  js  c++  java
  • 【网易官方】极客战记(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)
     
     
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    Sql Server 2008 为开发带来的新特性
    MSMQ 与ESB
    面向服务架构(SOA)和企业服务总线(ESB)
    IBM网站 构建您的SOA 系列文章
    Visual Studio 2008 和 .NET Framework 3.5 Training Kit
    模式与实践 系列发布WCF Security Guidance 1.0
    跟NHibernate之夏一起学习NHibernate
    ORACLE一些不常用的脚本
    ORACLE已建表能否创建分区
    Access数据库问题锦集
  • 原文地址:https://www.cnblogs.com/codecombat/p/12202029.html
Copyright © 2011-2022 走看看