Тема:
Базовый синтаксис
Условные операторы
Аргументы
Строки
Циклы
Переменные
Цели:
Очисти поляну огров
Руководство:
Информация
Не тратьте cleave() только на нескольких врагов. Будь умным с distanceTo(), чтобы поймать как можно больше.
Обзор:
Иногда лучше не применять сильную атаку немедленно. Если истратить её на первого врага которого вы увидите, под эту атаку попадёт только несколько первых врагов, оставив невредимыми своих друзей, которые вас прикончат!
Попробуйте использовать метод distanceTo(), чтобы ждать, пока враг не приблизится, прежде чем рассекать. Вы можете экспериментировать, для нахождения наилучший дистанции на которой применять удар, на этом уровне, около 5 метров будет работать хорошо.
Подсказка: Если рассечение не готово, не стоит просто стоять там! Используйте обычную attack(), пока вы ждете, готовности cleave().
Оборона Агриппы, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
loop: enemy = self.findNearestEnemy() if enemy: #pass # Замени этот код своим. # Определи расстояние до противника с помощью distanceTo. distance = self.distanceTo(enemy) # Если дистанция меньше 5 метров ... if distance<5: # ... если рассечение ("cleave") готово, руби! if self.isReady("cleave"): self.cleave(enemy) # ... или же просто атакуй. else: self.attack(enemy) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
loop { var enemy = this.findNearestEnemy(); if(enemy) { // Определи расстояние до противника с помощью distanceTo. var distance = this.distanceTo(enemy); // Если дистанция меньше 5 метров ... if (distance<5) { // ... если рассечение ("cleave") готово, руби! if (this.isReady("cleave")) { this.cleave(enemy); // ... или же просто атакуй. } else { this.attack(enemy); } } } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Вы можете вложить один оператор if в другой оператор if. # Однако, используя эту хитрость, Вы должны быть внимательны к тому, как операторы if взаимодействуют друг с другом. # Make sure the indentation is correct! # Полезно начать с одного внешнего оператора if, loop enemy = @findNearestEnemy() # Если рядом есть враг, то... if enemy # Создайте переменную для значения дистанции (с помощью DistanceTo) distance = @distanceTo(enemy) # Если до врага меньше 5 метров, то атаковать (attack) if distance<5 @attack enemy # В противном случае (если враг далеко), использовать щит (shield) else @shield() #@say "I should attack!" # Иначе (если нет врагов) else # тогда двигаться обратно к Х @moveXY 40, 34 |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
(while true (def enemy (.findNearestEnemy this)) (if enemy ;; Определи расстояние до противника с помощью distanceTo. (when true (def distance (.distanceTo this enemy)) ;; Если дистанция меньше 5 метров ... (if (< distance 5) ;; ... если рассечение ("cleave") готово, руби! (if (.isReady this "cleave") (.cleave this enemy) ;; ... или же просто атакуй. (.attack this enemy) ) ) ) ) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
loop local enemy = self:findNearestEnemy() if enemy then -- Определи расстояние до противника с помощью distanceTo. -- Если дистанция меньше 5 метров ... if self:distanceTo(enemy)<5 then -- ... если рассечение ("cleave") готово, руби! if self:isReady("cleave") then self:cleave(enemy) -- ... или же просто атакуй. else self:attack(enemy) end end end end |
Комментарии: