Тема:
Переменные
Строки
Циклы
Арифметика
Массивы
Литералы объектов
Цели:
Вернуть всех на базу
Руководство:
Вступление:
На этом уровне вы получите доступ к Звезде Командующего I. Теперь вы сможете вызвать союзные «soldier» и «archer».
Теперь вы так же можете управлять союзными лучниками и солдатами.
Предпоказ:
На этом уровне вам предстоит воспользоваться Звездой Командующего, который позволяет вызывать и командовать союзниками.
Звезда Командующего 1 уровня позволяет вызывать союзных солдат («soldier») и командовать союзными солдатами («soldier») и союзными лучниками («archer»).
Пример кода вначале демонстрирует, как использовать costOf и вызывает методы, чтобы призвать союзных солдат «soldier», если вам хватит на это золота.
Затем в данном примере используется findFriends, что бы получить массив из ваших союзников, и показывается команда союзникам «move».
Вы должны взять этот блок команд и поместить его в внутрь цикла, что бы вы применяли этот код ко всем солдатам, а не только к одному.
Потом используйте ещё один цикл while с move, чтобы переместить своего героя к помеченной позиции Х.
Пройдоха в ущелье Огров, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Призови несколько солдат и отправь их на базу. # Каждый солдат стоит 20 золотых. while hero.gold > hero.costOf("soldier"): hero.summon("soldier") soldiers = hero.findFriends() soldierIndex = 0 # Добавь цикл while для командования всеми солдатами. while soldierIndex<len(soldiers): soldier = soldiers[soldierIndex] hero.command(soldier, "move", {"x": 50, "y": 40}) soldierIndex+=1 # Присоединись к боевым товарищам! while hero.pos.x<50: hero.move({"x":50,"y":40}) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Призови несколько солдат и отправь их на базу. // Каждый солдат стоит 20 золотых. while (hero.gold > hero.costOf("soldier")) { hero.summon("soldier"); } var soldiers = hero.findFriends(); var soldierIndex = 0; // Добавь цикл while для командования всеми солдатами. while (soldierIndex<soldiers.length){ var soldier = soldiers[soldierIndex]; hero.command(soldier, "move", {x: 50, y: 40}); soldierIndex+=1; } // Присоединись к боевым товарищам! while (hero.pos.x<50) { hero.move({x:50,y:40}); } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# У тебя только 20 секунд до прихода толпы огров! # Хватай столько монет, сколько сможешь и уноси ноги на базу, закрывая проход за собой! while @now() < 20 # Собирай монеты #@say "Нужно собирать монетки" items = @findItems() gold = @findNearest items maxcost = gold.value/@distanceTo(gold) i = 0; while items.lenght>i if items[i].value/@distanceTo(items[i])>maxcost gold = @findNearest items maxcost = gold.value/@distanceTo(gold) i+=1 @move gold.pos while @pos.x > 16 # Беги за ограду # @say "Пора бежать" @move {x:16, y:38} # Дострой стену, чтобы спрятаться от огров. @buildXY "fence", 21, 37 |
Clojure:
1 |
;; |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
-- Призови несколько солдат и отправь их на базу. -- Каждый солдат стоит 20 золотых. while self.gold > self:costOf("soldier") do self:summon("soldier") end local soldiers = self:findFriends() local soldierIndex = 1 -- Добавь цикл while для командования всеми солдатами. while #soldiers+1>soldierIndex do local soldier = soldiers[soldierIndex] self:command(soldier, "move", {x=50, y=40}) soldierIndex=soldierIndex+1 end -- Присоединись к боевым товарищам! while self.pos.x<50 do self:move({x=50, y=40}) end self:say("end") |
Комментарии: