Тема:
Базовый синтаксис
Аргументы
Циклы
Условные операторы
Переменные
Цели:
Остановить всех огров.
Спасти все крестьян.
Руководство:
Информация
Вы можете расширить возможности вашего кода с помощью else!
else это тоже самое, что и if за исключением того, что код содержащийся в теле данной конструкции, выполняется когда условие оператора if ложно:
1 2 3 4 5 6 |
if enemy: # Это происходит, когда есть враг. self.attack(enemy) else: # Это происходит, когда нет врага. self.say("I don't see an enemy!") |
JavaScript:
1 2 3 4 5 6 7 |
if(enemy) { // Это происходит, когда есть враг. this.attack(enemy); } else { // Это происходит, когда нет врага. this.say("I don't see an enemy!"); } |
CoffeScript:
1 2 3 4 5 6 |
if enemy # Это происходит, когда есть враг. @attack(enemy) else # Это происходит, когда нет врага. @say("I don't see an enemy!") |
Clojure:
1 2 3 4 5 6 |
(if enemy ;; Это происходит, когда есть враг. (.attack this enemy) ;; Это происходит, когда нет врага. (.say this "I don't see an enemy!") ) |
LUA:
1 2 3 4 5 6 7 |
if enemy then -- Это происходит, когда есть враг. self:attack(enemy) else -- Это происходит, когда нет врага. self:say("I don't see an enemy!") end |
Анализ
Этот уровень представляет else как часть if/else.
При добавлении else пункта, вы выбираете что делать и когда условие истинно, и когда это не так.
Таким образом, вы можете сказать, если if есть враг, тогда thenатаковать его, else перейти на X.
Чтобы показать вам, как это работает, if и else настроены для вас, и вы должны положить в них attack и moveXY методы так чтобы ваш герой атаковал всех врагов в поле зрения, но когда там нет врагов, двигаться назад к X маркеру, чтобы защитить крестьян.
Убедитесь, что вы получите координаты Х маркера правильно, иначе вы не могли бы быть в состоянии защитить ваших крестьян.
Награда:
Бонус за чистый код:
Деревенская стража, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 |
# Оставайся по центру и защищай! loop: enemy = self.findNearestEnemy() if enemy: # Или атакуй врага... self.attack(enemy) else: # ... или возвращайся назад на оборонительную позицию. self.moveXY(40, 34) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Оставайся по центру и защищай! loop { var enemy = this.findNearestEnemy(); if (enemy) { // Или атакуй врага... this.attack(enemy); } else { // ... или возвращайся назад на оборонительную позицию. this.moveXY(40, 34); } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 |
# Оставайся по центру и защищай! loop # @say "Delete this when your loop isn't infinite." enemy = @findNearestEnemy() if enemy # Или атакуй врага... @attack enemy else # ... или возвращайся назад на оборонительную позицию. @moveXY 40, 34 |
Clojure:
1 2 3 4 5 6 7 8 9 10 |
;; Оставайся по центру и защищай! (dotimes [n 1000] (def enemy (.findNearestEnemy this)) (if enemy ;; Или атакуй врага... (.attack this enemy) ;; ... или возвращайся назад на оборонительную позицию. (.moveXY this 40 34) )) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 |
-- Оставайся по центру и защищай! loop enemy = self:findNearestEnemy() if enemy then -- Или атакуй врага... self:attack(enemy) else -- ... или возвращайся назад на оборонительную позицию. self:moveXY(40, 34) end end |
не могу пройти уровень (Спина к спине)в Бэквудском лесу