zoukankan      html  css  js  c++  java
  • 「网易官方」极客战记(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

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

  • 相关阅读:
    Minimum Depth of Binary Tree leetcode java
    Maximum Depth of Binary Tree leetcode java
    Symmetric Tree leetcode java
    Same Tree leetcode java
    Binary Tree Postorder Traversal leetcode java
    Binary Tree Preorder Traversal leetcode java
    Binary Tree Inorder Traversal leetcode java
    Combinations leetcode java
    一键清除Centos iptables 防火墙所有规则
    阿里云centos7.7x64安装open,并配置ip转发和nat伪装
  • 原文地址:https://www.cnblogs.com/codecombat/p/12449556.html
Copyright © 2011-2022 走看看