「网易官方」极客战记(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

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

猜你喜欢

转载自www.cnblogs.com/codecombat/p/12449556.html