「网易官方」极客战记(codecombat)攻略-沙漠-银行突袭_bank-raid

「网易官方」极客战记(codecombat)攻略-沙漠-银行突袭_bank-raid_第1张图片
(点击图片进入关卡)

食人魔们认为他们能够夺走我们的黄金,愚蠢至极!

简介

为了找到并遍历所有的敌人和物品,你可以用 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
极客战记——学编程,用玩的

你可能感兴趣的:(「网易官方」极客战记(codecombat)攻略-沙漠-银行突袭_bank-raid)