(点击图片进入关卡)
食人魔们认为他们能够夺走我们的黄金,愚蠢至极!
简介
为了找到并遍历所有的敌人和物品,你可以用 findEnemies() 或者 findItems() 以及 while 循环。
enemies = hero.findItems()
enemyIndex = 0
# 遍历敌人数组。
while enemyIndex < len(enemies):
enemy = enemies[enemyIndex]
hero.attack(enemy)
# 重要: 增加 enemyIndex 变量的值。
# 否则代码会陷入死循环。
enemyIndex += 1
默认代码
# 等待食人魔,击败他们并收集黄金。
while True:
enemies = hero.findEnemies()
# enemyIndex 用于迭代数组。
enemyIndex = 0
# 虽然enemyIndex小于len(敌人)
while enemyIndex < len(enemies):
# 在enemyIndex攻击敌人
enemy = enemies[enemyIndex]
hero.attack(enemy)
# 给 enemyIndex 加上 1。
enemyIndex += 1
coins = hero.findItems()
# coinIndex用于迭代硬币数组。
coinIndex = 0
while coinIndex < len(coins):
# 用 coinIndex 从 coins 数组得到一个金币。
# 收集那个金币。
# 给 coinIndex 的值增加 1。
coinIndex += 1
概览
你可以用 while - 条件循环 (或 “迭代”('iterate',有时称为 “遍历”)) 一个数组。
第一步,创建一个用作数组索引 (index) 的变量。
初始值应该为 0 ,也就是说你第一个读到的就是索引为 0 的值。 然后每次把索引变量加上 1 ,读取下一个元素 (element)。 (记得第二个元素的 索引 是 1 )
至于 while 条件 则是检查 索引变量 是否仍小于数组长度。
举个栗子例子:
items = hero.findItems()
itemIndex = 0
while itemIndex < len(items):
item = items[itemIndex]
hero.say(item)
itemIndex += 1
别忘了每次循环里增加 itemIndex 的值,否则你会因为无限循环 (infinite loop) 毁灭世界的。
如果你需要对几组事物 (敌人啊,朋友啊什么的) 进行操作,那你可以将这些代码放进另一个 while 循环 里。比如放进 while-true 循环 之后你的英雄会周而复始迭代处理每组事物。
while True:
items = hero.findItems()
itemIndex = 0
while itemIndex < len(items):
item = items[itemIndex]
hero.moveXY(item.pos.x, item.pos.y)
itemIndex += 1
银行突袭 解法
# 等待食人魔,击败他们并收集黄金。
while True:
enemies = hero.findEnemies()
# enemyIndex 用于迭代数组。
enemyIndex = 0
# 虽然enemyIndex小于len(敌人)
while enemyIndex < len(enemies):
# 在enemyIndex攻击敌人
enemy = enemies[enemyIndex]
hero.attack(enemy)
# 给 enemyIndex 加上 1。
enemyIndex += 1
coins = hero.findItems()
# coinIndex用于迭代硬币数组。
coinIndex = 0
while coinIndex < len(coins):
# 用 coinIndex 从 coins 数组得到一个金币。
coin = coins[coinIndex]
# 收集那个金币。
hero.moveXY(coin.pos.x, coin.pos.y)
# 给 coinIndex 的值增加 1。
coinIndex += 1
本攻略发于极客战记官方教学栏目,原文地址为:
https://codecombat.163.com/news/jikezhanji-yinhangtuxi
极客战记——学编程,用玩的