Тема:
Аргументы
Переменные
Строки
Условные операторы
Арифметика
Циклы
Цели:
Победи 10 огров.
Отступи к засаде.
Руководство:
Вступление:
while цикл может использовать любое логическое выражение, не только true, например:
Python:
1 2 3 |
while attacks < 10: self.attack(enemy) attacks += 1 |
JavaScript:
1 2 3 4 |
while(attacks < 10) { this.attack(enemy); attacks += 1; } |
CoffeScript:
1 2 3 |
while attacks < 10 @attack(enemy) attacks += 1 |
Clojure:
1 2 3 4 |
(while (< attacks 10) (.attack this enemy) (def attacks (inc attacks)) ) |
LUA:
1 2 3 4 |
while attacks<10 do self:attack(enemy) attacks = attacks + 1 end |
цикл закончит работу, когда условие ложно (false).
Описание:
На этом уровне, Вам нужно выполнять 10 атак и отступить к отметке — Х.
Сначала, Ваш счётчик ударов — attacks равен .
Далее, следует создать цикл while с условием его выполнения при attacks < 10.
Внутри цикла следует поместить алгоритм поиска ближайшего врага, и при его наличии, атаковать. При этом, счётчик ударов должен быть увеличен на 1 единицу.
После завершения цилка, следует отступить — moveXY до отметки X, имеющей координаты: 79, 33.
Пыль, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Используй "while" пока не наберешь достаточно ударов для убийства 10 манчкинов. attacks = 0 while attacks < 10: # Атакуй ближайшего врага! enemy = self.findNearestEnemy() # Увеличивай рост состояния на 1. # Увеличиваем кол-во в attacks if enemy: self.attack(enemy) attacks += 1 self.cleave(enemy) # Как только закончишь, отступай к засаде. self.moveXY(79, 33) self.say("I should retreat!") #∆ Не просто стой там разглогольствуя. |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Используйй "while" пока не наберешь достаточно ударов для убийства 10 манчкинов. var attacks = 0; while (attacks < 10) { // Атакуй ближайшего врага! var enemy = this.findNearestEnemy(); // Увеличивай рост состояния на 1. // Увеличиваем кол-во в attacks. if (enemy){ this.attack(enemy); attacks += 1; } } this.cleave(enemy); // Как только закончишь, отступай к засаде. this.moveXY(79, 33); this.say("I should retreat!"); //∆ Не просто стой там разглогольствуя. |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Используйй "while" пока не наберешь достаточно ударов для убийства 10 манчкинов. attacks = 0 while attacks < 10 # Атакуй ближайшего врага! enemy = @findNearestEnemy() # Увеличивай рост состояния на 1. # Увеличиваем кол-во в attacks if enemy @attack enemy attacks += 1 @cleave enemy # Как только закончишь, отступай к засаде. @moveXY 79, 33 @say("I should retreat!") #∆ Не просто стой там разглогольствуя. |
Clojure:
Повторюсь continue в clojure нет. Но переживать по этому поводу не стоит.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
;; Используйй "while" пока не наберешь достаточно ударов для убийства 10 манчкинов. (def attacks 0) (while (< attacks 10) ;; Атакуй ближайшего врага! (def enemy (.findNearestEnemy this)) ;; Увеличивай рост состояния на 1. ;; Увеличиваем кол-во в attacks (when enemy (.attack this enemy) (def attacks (inc attacks)) ) ) (.cleave this enemy) ;; Как только закончишь, отступай к засаде. (.moveXY this 79 33) (.say this "I should retreat!") ;;∆ Не просто стой там разглогольствуя. |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
-- Всегда создавай условие для выхода из цикла "while", иначе он будет повторятся бесконечно! -- Используйй "while" пока не наберешь достаточно ударов для убийства 10 манчкинов. local attacks = 0 while attacks<10 do -- Атакуй ближайшего врага! enemy = self:findNearestEnemy() -- Увеличивай рост состояния на 1. -- Увеличиваем кол-во в attacks if enemy then self:attack(enemy) attacks = attacks +1 end end self:cleave(enemy) -- Как только закончишь, отступай к засаде. self:moveXY(79, 33) #∆ Не просто стой там разглогольствуя. |
Комментарии: