Тема:
Переменные
Строки
Условные операторы
Арифметика
Циклы
Массивы
Цели:
Аккуратно пробудить спящих шаманов.
Руководство:
Вступление:
Функция findEnemies() возвращает массив, содержащий всех врагов которых может видеть ваш герой:
Python:
1 |
enemies = self.findEnemies() |
JavaScript:
1 |
var enemies = this.findEnemies(); |
CoffeScript:
1 |
enemies = @findEnemies() |
Clojure:
1 |
(def enemies (.findEnemies this)) |
LUA:
1 |
local enemies = self:findEnemies() |
Переборите всех врагов и атакуйте каждого, с типом «shaman».
Описание:
Теперь, когда вы познакомились с массивами, вы можете использовать метод findEnemies, для того чтобы получить массив, содержащий список всех врагов, которых может видеть ваш герой.
Используйте findEnemies, чтобы получить массив врагов — enemies.
Вам было дано логическое условие: каких врагов нужно атаковать. Код, описывающий это условие должен быть помещен в цикл while и удостоверьтесь, что вы используете индекс врагов в массиве — enemyIndex!
Введите в цикл while условие: пока значение enemyIndex меньше длины массива enemies (len(enemies)).
Прятки, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# "findEnemies" возвращает список всех ваших врагов. # Атаковать только шаманов. Не нападайте на яков! enemies = self.findEnemies() enemyIndex = 0 # Заключите весь код в цикл 'While', чтобы код учитывал весь список врагов. # While the enemyIndex is less than the length of enemies while enemyIndex < len(enemies): enemy = enemies[enemyIndex] if enemy.type == 'shaman': while enemy.health > 0: self.attack(enemy) # Remember to increment enemyIndex enemyIndex += 1 |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// "findEnemies" возвращает список всех ваших врагов. // Атаковать только шаманов. Не нападайте на яков! var enemies = this.findEnemies(); var enemyIndex = 0; // Заключите весь код в цикл 'While', чтобы код учитывал весь список врагов. // While the enemyIndex is less than the length of enemies while (enemyIndex< enemies.length) { var enemy = enemies[enemyIndex]; if (enemy.type == 'shaman') { while (enemy.health > 0) { this.attack(enemy); } } // Remember to increment enemyIndex enemyIndex += 1; } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# "findEnemies" возвращает список всех ваших врагов. # Атаковать только шаманов. Не нападайте на яков! enemies = @findEnemies() enemyIndex = 0 # Заключите весь код в цикл 'While', чтобы код учитывал весь список врагов. # While the enemyIndex is less than the length of enemies while enemyIndex < enemies.length enemy = enemies[enemyIndex] if enemy.type is 'shaman' while enemy.health > 0 @attack enemy # Remember to increment enemyIndex enemyIndex= enemyIndex + 1 |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
;; "findEnemies" возвращает список всех ваших врагов. ;; Атаковать только шаманов. Не нападайте на яков! (def enemies (.findEnemies this)) (def enemyIndex 0) ;; Заключите весь код в цикл 'While', чтобы код учитывал весь список врагов. ;; While the enemyIndex is less than the length of enemies (while (< enemyIndex (count enemies)) (def enemy (nth enemies enemyIndex)) (if (= (.type enemy) "shaman") (while (> (.health enemy) 0) (.attack this enemy) ) ) ;; Remember to increment enemyIndex (def enemyIndex (inc enemyIndex)) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- "findEnemies" возвращает список всех ваших врагов. -- Атаковать только шаманов. Не нападайте на яков! local enemies = self:findEnemies() local enemyIndex = 1 -- Заключите весь код в цикл 'While', чтобы код учитывал весь список врагов. -- While the enemyIndex is less than the length of enemies while enemyIndex <= #enemies do local enemy = enemies[enemyIndex] if enemy.type == 'shaman' then while enemy.health > 0 do self:attack(enemy) end end -- Remember to increment enemyIndex enemyIndex = enemyIndex + 1 end |
Комментарии: