• 「网易官方」极客战记(codecombat)攻略-森林-通信尸体


    「网易官方」极客战记(codecombat)攻略-森林-通信尸体

     

    简介

    「网易官方」极客战记(codecombat)攻略-森林-通信尸体

    使用不同颜色的标志来告诉你的英雄跑掉或cleave()。

    之前,你用了距离(distanceTo)来做到只攻击附近的敌人,并用旗子来接近敌人。

    现在,我们要做同样的事情,但我们用绿色的旗子来朝敌人移动(或从敌人那儿逃跑!),用黑色的旗子来让英雄使用'cleave'攻击。

    这样,我们就可以把cleave攻击留给合适的时间,也就是当附近有很多敌人时。

    小窍门:使用不带参数的cleave来就地使用cleave技能,而不是对准一个敌人来cleave。

    Python是很棒的编程语言!它能让你快速完成工作,有效整合成体系。它易于阅读和使用,交互模式让简短代码的测试格外简单。此外,Python还是开源的。

    方法

    实际做事的就是方法!

    self.moveRight()

    方法是给计算机的命令。上面是调用方法的例子,这里具体是moveRight。

    这是Tharin的方法之一。self说的是,你自己的单位的方法,而不是别人的。没有它,在哪找moveRight方法就不明确了。

    方法后的括号意思不过是'运行它'。没有它们的话,什么都不会发生。

    self.say("Hello!")

    self.moveXY(5,6)

    方法的参数被放到括号之间。参数指定了命令具体怎么做。这里,say()告诉英雄说点什么,而"Hello!"告诉他具体说的内容。(引号不能少,因为这是文本字符串,文本字符串必须要有引号。)

    多个参数需要用逗号隔开。moveXY(5, 6)中,5是第一个参数(x坐标),6是第二个参数(y坐标)。 (数字不使用引号)

    变量

    让我们给事物取名字!

    enemy=self.findNearestEnemy()

    self.say(enemy)

    taunt=("哈哈,你现在挂了!")

    self.say(taunt)

    deadEnemies=1

    deadFriends=0

    score=deadEnemies-deadFriends

    变量是存储事物的简单方式。如上面的前两行,编码者通常将角色或对象存为变量,这样就能轻松将其用作函数参数了。经常使用的文本字符串也可以存到变量中,这会大幅减少重复输入的麻烦。最后三行给的是变量表示数值的例子。变量中存储的数值,之后可以用到方程中。当然,你也可以用这些变量来跟踪程序运行。

    要创建变量,你需要键入变量名,等号,然后是要存储的信息。如果变量名含有多个单词,中间使用空格是不允许的,你可以将每个词的第一个字母大写,这样会便于阅读,例如: lowestHealthFriend比lowesthealthfriend更容易理解。这通常被称作驼峰式大小写。说到大小写,变量名中的大小写是有区分的。你在使用变量的过程中,一定要保持大小写固定不变。例如:

    enemy=self.findNearestEnemy()

    self.say(Enemy)

    这段代码没法工作,因为"enemy"和"Enemy"不是相同的变量。按Shift时务必小心!

    真和假

    要想让if块执行,冒号前if条件的值必须为真。如果条件为假,else块就会执行(如果有else块的话)。Python中的几个假值如下:

    • None
    • False(布尔值)
    • 0(整数)
    • 0.0(浮点数)
    • 0L(长整数)
    • 0.0+0.0j(复数)
    • "" (空字符串)
    • ( )(空元组)
    • { }(空字典)

    其他的一切都为真:

    • 所有对象
    • 所有非空数组
    • 所有非0数字(包括虚数)
    • 所有非空字符串
    • True(布尔值)

    Python中的if和else语句

    编程的目的就是为了自动处理各种情形。基于不同状态做不同事情的主要工具是if和else,用法像这样:

    a=3

    b=9

    if(a>b):

    self.say("数学出问题了!")

    self.soundTheAlarm()

    else:

    self.say("数学还奏效。")

    self.sleep()

    本例中,if块中的代码不会执行(if语句和else语句之间的所有代码),因为3永远不会大于9。只有else块会被执行。

    注意,if条件为真时要执行的语句都需要正好比if多缩进四个空格。这样计算机才能知道条件为真时要运行什么代码。

    还要注意if语句后的冒号,冒号只出现在这里,告诉计算机要执行的判别完了,准备好执行判别后的指令。

    通信尸体 解法

    # 你可以使用旗子来选择不同的策略

    # 在这关,绿色旗子代表你要移动到旗子处。

    # 遇到黑旗就意味着你要劈开旗子

    # 医生会在Red X医治你

    while True:

    green = hero.findFlag("green")

    black = hero.findFlag("black")

    nearest = hero.findNearestEnemy()

    if green:

    hero.pickUpFlag(green)

    elif black and hero.isReady("cleave"):

    hero.pickUpFlag(black)

    # 劈斩!

    hero.cleave(nearest)

    elif nearest and hero.distanceTo(nearest) < 10:

    # 攻击!

    hero.attack(nearest)

    pass

    本攻略发于极客战记官方教学栏目,原文地址为:

    https://codecombat.163.com/news/jikezhanji-tongxinshiti

    极客战记——学编程,用玩的!

  • 相关阅读:
    快速编辑里指定默认值
    Odoo domain 中的 like, ilike, =like, =ilike 举例说明【转】
    odoo报表条码无法显示解决[转]
    ubuntu 安装 wkhtmltopdf 的方法
    解决Odoo日期(时间)无效的问题 [转]
    ShareSDK演示
    黑客帝国数字矩阵特效做法
    lua中实现倒计时
    Lua中用Split函数分割字符串
    lua封装的位运算
  • 原文地址:https://www.cnblogs.com/codecombat/p/12449556.html
Copyright © 2020-2023  润新知