Тема:
Циклы
Условные операторы
Переменные
Строки
Арифметика
Булевая логика
Цели:
Атакуйте огров.
Собирайте монеты.
Руководство:
Введение:
С now() вы можете изменить свои действия, в зависимости от того, сколько времени прошло.
К тому же, используйте конструкцию оператора if вместе с else-if.
Python:
1 2 3 4 |
if self.now() < 10: # атаковать elif self.now() < 30: # собирать монетки |
JavaScript:
1 2 3 4 5 |
if(this.now() < 10) { // атаковать } else if (this.now() < 30) { // собирать монетки } |
CoffeScript:
1 2 3 4 |
if @now() < 10 # атаковать else if @now() < 30 # собирать монетки |
Clojure:
1 2 3 4 5 6 7 |
(if (< (.now this) 10) ;; атаковать (if (< (.now this) 30) ;; собирать монетки ) ) |
LUA:
1 2 3 4 5 |
if self:now() < 10 then -- атаковать else -- собирать монетки end |
Описание:
Вы можете использовать новую функцию Ваших часов —
now, для того чтобы определить, сколько времени прошло, после того, как Вы нажали кнопку «ЗАПУСТИТЬ».
На этом уровне, первые 10 секунд Вы должны помогать солдатам сражаться с ограми. Пример кода покажет Вам, как использовать функцию now.
Далее, если с начала уровня прошло меньше 30 секунд, собирайте монеты.
И наконец, помогите своим союзникам сражаться с ограми. Если Ваш герой не может выжить в последней схватке, используйте флаги, чтобы герой отступил в безопасное место!
От меня:
На этом уровне вам понадобятся часы с фунцией now.
Сохраняя время, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# Используйте свои новые навыки, чтобы выбрать что делать: self.now() loop: # Если это первые 10 секунд, сражайтесь. enemy = self.findNearestEnemy() if self.now() < 10: if enemy.type!="palisade": if self.isReady("cleave"): self.cleave(enemy) else if self.isReady("bash"): self.bash(enemy) else: self.attack(enemy) # Иначе, если это первые 30 секунд, собирайте монеты. elif self.now() < 30: item = self.findNearestItem() self.moveXY(item.pos.x, item.pos.y) # После 30-ой секунды, присоединяйтесь к остальным! else: if enemy and (self.health > self.maxHealth/3): if self.isReady("cleave"): self.cleave(enemy) else if self.isReady("bash"): self.bash(enemy) else: self.attack(enemy) else: self.moveXY(1, 57) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// Используйте свои новые навыки, чтобы выбрать что делать: this.now() loop { var enemy = this.findNearestEnemy(); // Если это первые 10 секунд, сражайтесь. if (this.now() < 10) { if (enemy.type!="palisade"){ if (this.isReady("cleave")){ this.cleave(enemy); } else if (this.isReady("bash")){ this.bash(enemy); } else { this.attack(enemy); } } // Иначе, если это первые 30 секунд, собирайте монеты. } else if (this.now() < 30) { var item = this.findNearestItem(); this.moveXY(item.pos.x, item.pos.y); // После 30-ой секунды, присоединяйтесь к остальным! } else { if ((enemy)&&(this.health>this.maxHealth/3)){ if (this.isReady("cleave")) { this.cleave(enemy); } else if (this.isReady("bash")){ this.bash(enemy); } else { this.attack(enemy); } } else { this.moveXY(1, 57); } } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# Используйте свои новые навыки, чтобы выбрать что делать: @now() loop # Если это первые 10 секунд, сражайтесь. enemy = @findNearestEnemy() if @now() < 10 # @say "I should help fight." if enemy.type!="palisade" if @isReady "cleave" @cleave enemy else if @isReady "bash" @bash enemy else @attack enemy # Иначе, если это первые 30 секунд, собирайте монеты. else if @now() < 30 item = @findNearestItem() @moveXY item.pos.x, item.pos.y # После 30-ой секунды, присоединяйтесь к остальным! else if @health>@maxHealth/3 if @isReady "cleave" @cleave enemy else if @isReady "bash" @bash enemy else @attack enemy else @moveXY 1, 57 return |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
;; Используйте свои новые навыки, чтобы выбрать что делать: (.now this) (while true (def enemy (.findNearestEnemy this)) (if (< (.now this) 10) ;; Если это первые 10 секунд, сражайтесь. (when (not(= (.type enemy) "palisade")) (if (.isReady this "cleave") (.cleave this enemy) (if (.isReady this "bash") (.bash this enemy) (.attack this enemy)))) ;; Иначе, если это первые 30 секунд, собирайте монеты. (if (< (.now this) 30) (when true (def item (.findNearestItem this)) (.moveXY this (.x (.pos item)) (.y (.pos item))) ) ;; После 30-ой секунды, присоединяйтесь к остальным! (if (and enemy (> (.health this) (/ (.maxHealth this) 3))) (if (.isReady this "cleave") (.cleave this enemy) (if (.isReady this "bash") (.bash this enemy) (.attack this enemy))) (.moveXY this 1 57) ) ) )) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
-- Используйте свои новые навыки, чтобы выбрать что делать: self:now() loop enemy = self:findNearestEnemy() -- Если это первые 10 секунд, сражайтесь. if (self:now() < 10) then if enemy.type ~= "palisade" then if self:isReady("cleave") then self:cleave(enemy) elseif self:isReady("bash") then self:bash(enemy) else self:attack(enemy) end end -- Иначе, если это первые 30 секунд, собирайте монеты. elseif self:now() < 30 then item = self:findNearestItem() self:moveXY(item.pos.x, item.pos.y) -- После 30-ой секунды, присоединяйтесь к остальным! else if enemy and (self.health > self.maxHealth/3) then if self:isReady("cleave") then self:cleave(enemy) elseif self:isReady("bash") then self:bash(enemy) else self:attack(enemy) end else self:moveXY(1, 57) end end end |
Комментарии: