zoukankan      html  css  js  c++  java
  • 【网易官方】极客战记(codecombat)攻略-森林-乡村漫游者village-rover

    在村庄里巡逻是个重复工作,使用函数会让其更加简单!

    简介

    在村庄中巡逻是很无聊的重复工作。

    使用函数可以让重复工作轻松许多。你可以将很多行代码放到一行里!

    # 定义一个函数
    def findAndAttackEnemy():
        enemy = hero.findNearest(hero.findEnemies())
        if enemy:
            hero.attack(enemy)
    # 之前所有的代码现在都可以用一行搞定了
    findAndAttackEnemy()

    默认代码

    # 定义一个函数
    def findAndAttackEnemy():
        enemy = hero.findNearestEnemy()
        if enemy:
            hero.attack(enemy)
    # 这段代码不是函数的一部分。
    while True:
        # 现在你可以使用findAndAttackEnemy在村子里巡逻
        hero.moveXY(35, 34)
        findAndAttackEnemy()
        # 现在移动到右侧入口。
        # 使用findAndAttackEnemy

    概览

    函数是代码的重要组成部分。

    你一直都在使用函数,例如如下代码:

    hero.attack(enemy)

    ... 这是在调用 ("calling" 或者说 "invoking") 一个函数,名为 attack 。

    调用 attack 时实际使用的代码很长很复杂。设想一下,如果每次挥剑都需要写 25 行代码,你会作何感想!

    这是函数的第一大好处:它们能将大量代码浓缩到一行。

    这不仅节约了你的键入时间,让你不需要重复键入相同代码,这还让你的代码更简单易读。这能让很复杂的逻辑变得易于理解。例如:我要攻击。我有武器吗?要用武器我离得足够近吗?用武器需要多长时间?我要打吗?我造成伤害吗?所有这些都可以浓缩为一个简单的函数: attack 。

    现在你将不只是调用函数,你还将定义你自己的函数!

    定义一个函数,它含有两部分:函数名和函数体

    函数名是函数的名称,你以后要用它调用函数,例如 attack 。

    函数体是调用函数时实际执行的代码。

    有时函数还带有参数(例如 attack(enemy) 中的 enemy),这在以后的关卡中我们再说。

    乡村漫游者 解法

    # 这定义了findAndAttackEnemy函数
    def findAndAttackEnemy():
        enemy = hero.findNearestEnemy()
        if enemy:
            hero.attack(enemy)
    # 这段代码不是函数的一部分。
    while True:
        # 现在你可以使用findAndAttackEnemy在村子里巡逻
        hero.moveXY(35, 34)
        findAndAttackEnemy()
        # 现在移动到右侧入口。
        hero.moveXY(60, 31)
        # 使用findAndAttackEnemy
        findAndAttackEnemy()
     
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    静态方法、类方法和属性方法
    类的私有属性和私有方法
    JMeter-正则表达式(取出银行卡号后4位)
    JMeter连接MySQL数据库
    解决chrome提示您的连接不是私密连接的方法
    python安装appium模块
    mac中的word内容丢失
    有些事一旦开始就停不下来了
    Python接口测试-以&连接拼接字典数据(get中url请求数据)
    Python接口测试-模块引用与映射
  • 原文地址:https://www.cnblogs.com/codecombat/p/12197001.html
Copyright © 2011-2022 走看看