Тема:
Базовый синтаксис
Аргументы
Строки
Циклы
Условные операторы
Переменные
Цели:
Взломай сундук
Выживи
Руководство:
Информация
Обзор
На этом уровне, вы будете использовать всё, что вы узнали на нескольких последних уровнях. Для того, чтобы победить огромное количество огров Жевунов и в это же время взламывать гигантский сундук с сокровищами используйте if/else, distanceTo, <, и cleave.
Эти Жевуны испугались вас и вашего могучего длинного меча, так что они будут только приближаться, пока не наберётся достаточное количество. Проверьте расстояние до ближайшего манчкин и рассекайте, если манчкин ближе чем на десять метров. Используйте else, чтобы напасть на «Chest» в противном случае.
Совет: не забудьте использовать, while true.
Подсказка: вы будете знать, что ваша проверка расстояния работает, когда ваш герой не будет гоняется за Жевунами и отходить от сундука.
Награда:
Защити фермера, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 |
loop: # Проверь расстояние до ближайшего врага. enemy = self.findNearestEnemy() # Если он ближе 10 метров, рассеки его! if self.distanceTo(enemy)<5: if self.isReady("cleave"): self.cleave(enemy) else: self.shield() # Иначе, ломай сундук (используй имя "Chest" ). else: self.attack("Chest") |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
loop { // Проверь расстояние до ближайшего врага. var enemy = this.findNearestEnemy(); // Если он ближе 10 метров, рассеки его! if (this.distanceTo(enemy)<5) { if (this.isReady("cleave")) { this.cleave(enemy); } else { this.shield(); } // Иначе, ломай сундук (используй имя "Chest" ). } else { this.attack("Chest"); } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
loop enemy = @findNearestEnemy() # Проверь расстояние до ближайшего врага. if @distanceTo(enemy)<5 # Если он ближе 10 метров, рассеки его! if @isReady "cleave" @cleave enemy else @shield() # Иначе, ломай сундук (используй имя "Chest" ). else @attack "Chest" # @say "Delete this line when your loop is finite." |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
(dotimes [n 1000] ;; Проверь расстояние до ближайшего врага. (let [enemy (.findNearestEnemy this)] ;; Если он ближе 10 метров, рассеки его! (if (< (.distanceTo this enemy) 5) (if (.isReady this "cleave") (.cleave this enemy) (.shield this) ) ;; Иначе, ломай сундук (используй имя "Chest" ). (.attack this "Chest") ) ) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
loop -- Проверь расстояние до ближайшего врага. enemy = self:findNearestEnemy() -- Если он ближе 10 метров, рассеки его! if self:distanceTo(enemy)<5 then if self:isReady("cleave") then self:cleave(enemy) else self:shield() end -- Иначе, ломай сундук (используй имя "Chest" ). else self:attack("Chest") end end |
Комментарии: