简介
结合你知道的一切用于通过树林冒险!记住while-true循环,if/else,flags,cleave(),attack(),pos和moveXY()`。
将你学到的关于 if/else 的知识都拿出来,挥动手中的旗子,释放你的技能,从 pos 对象中获得需要的 x 和 y 坐标,清扫所有草地上的金币和敌人吧。
你要用上 pickUpFlag 让你的英雄在草地之间移动,攻击敌人少不了 attack 和 cleave ,还有 moveXY 帮你捡起看得见的金币。
提示: 记得要先点击 提交 才能放置旗子。地图是随机的,所以每次提交都不一样。
编程的目的就是为了自动处理各种情形。基于不同状态做不同事情的主要工具是if和else,用法像这样:
a=3
b=9
if(a>b):
self.say("数学出问题了!")
self.soundTheAlarm()
else:
self.say("数学还奏效。")
self.sleep()
本例中,if块中的代码(也就是第一对{}之间的代码)永远不会执行,因为3永远不会大于9.只有else块会被执行。
真和假
if块要执行,if后括号内的值必须为真。如果值为假,else块就会执行(如果有else块的话)。JavaScript中只有少数几个假值:
- undefined(未定义)
- null
- 0(数字0)和NaN(JavaScript中的一种特殊数字)
- "" (空字符串)
- false
其他所有值都为真:
- 所有对象
- 所有数组
- 所有非0非NaN的数字
- 所有非空字符串
- true
上面的例子中,a>b的值是false,所以if块不会执行,else块则会执行。
丰富的觅食 解法
# 使用 if 和 else if 来处理任何情况
# 放置它来防御敌人,收集金币
# 确保你从物品商店买到伟大的盔甲,建议400点以上的健康。
while True:
flag = hero.findFlag()
enemy = hero.findNearestEnemy()
item = hero.findNearestItem()
if flag:
# 当我发现旗子的时候发生了什么?
hero.pickUpFlag(flag)
elif enemy:
# 当我找到敌人的时候发生了什么?
hero.attack(enemy)
elif item:
# 当我找到一个物品的时候,发生了什么?
hero.moveXY(item.pos.x, item.pos.y)
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-fengfudemishi