Тема:
Переменные
Строки
Условные операторы
Арифметика
Циклы
Массивы
Цели:
Победи клонов и огров Токтара.
Ваш герой должен выжить.
Руководство:
Заметки
Токтар сильнее вас, так что для победы над его отрядом клонов и огров потребуется сообразительность.
Вам следует применить все навыки полученные в Пустыне (массивы и while-циклы), чтобы с умом выбирать цели.
От себя:
Столкновение клонов, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
self.moveXY(65, 66) while True: enemies = self.findEnemies() enemy = self.findNearest(enemies) if enemy.type=="soldier" or enemy.type=="knight" or enemy.type=="scout": if enemy: if self.isReady("bash"): self.bash(enemy) self.wait(1); else: self.attack(enemy) else: if self.health>self.maxHealth/4: self.shield() else: self.moveXY(42, 77) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Вам необходима хорошая стратегия и подходящее снаряжение, чтобы победить. this.moveXY(65, 66); while (true) { var enemies = this.findEnemies(); var nearest = this.findNearest(enemies); if (nearest.type=="soldier" || nearest.type=="knight"){ if (this.isReady("bash")){ this.bash(nearest); this.wait(1); } else { this.attack(nearest); } } else { if (this.health>this.maxHealth/4){ this.shield(); } else { this.moveXY(42, 77); } } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Вам необходима хорошая стратегия и подходящее снаряжение, чтобы победить. @moveXY 65, 66 while true enemies = @findEnemies() nearest = @findNearest enemies if nearest.type == "soldier" or nearest.type == "knight" if @isReady "bash" @bash nearest @wait 1 else @attack nearest else if @health>@maxHealth/4 @shield() else @moveXY 42, 77 |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
;; Вам необходима хорошая стратегия и подходящее снаряжение, чтобы победить. (.moveXY this 65 66) (while true (def enemies (.findEnemies this)) (def nearest (.findNearest this enemies)) (if (or (= (.type nearest) "soldier") (= (.type nearest) "knight")) (if (.isReady this "bash") (when true (.bash this nearest) (.wait this 1)) (.attack this nearest)) (if (> (.health this) (/ (.maxHealth this) 4)) (.shield this) (.moveXY this 42 77)) ) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
-- Вам необходима хорошая стратегия и подходящее снаряжение, чтобы победить. self:moveXY(65, 66) while true do enemies = self:findEnemies() nearest = self:findNearest(enemies) if nearest.type == "soldier" or nearest.type == "knight" then if self:isReady("bash") then self:bash(nearest) self:wait(1) else self:attack(nearest) end else if self.health>self.maxHealth/4 then self:shield() else self:moveXY(42, 77) end end end |
Все равно убивают
Попробовал сейчас пройти… сносят на раз. Не могу придумать что бы такого сделать.
На этом уровне важен надетый шмот. И уровень персонажа. Так что рекомендую проходить сначала другие локации, а потом вернуться назад.
Хороший доспех, плохой меч и щит с башем. Если баш созрел — башим, иначе закрываемся щитом. Меня спасло.
self.moveXY(65, 66)
while True:
enemies = self.findEnemies()
enemy = self.findNearest(enemies)
if enemy.type==»soldier» or enemy.type==»knight» or enemy.type==»scout»:
if enemy:
if self.isReady(«bash»):
self.bash(enemy)
else:
self.shield()
Берем самый слабый меч и щит с башем
Фига се ты карикатуру написал. Зачем? Чтоб дибилы не абузили? (Спасибо работает)
Использую Бронзовый щит, Длинный меч, Базовые флаги, Кварцевый сенсорный камень, Шапка из искусственного меха, Кожаный пояс, Резные часы, Очки из красного дерева.
Сначала убиваем лучников, а потом убегаем от врагов (не подходите к якам). Наши лучники добьют оставшихся врагов.
Ребята, все очень просто!
Вот решение вашей проблемы:
this.moveXY(81, 67);
while (true) {
this.shield();
}
Если будет на тебе одет хороший меч и плохой щит не поможет… А здесь бот не умеет башить… поэтому берём щит с башем самый слабый меч и ..башим всех щитом 🙂 тогда всё ок. В общем нужно преимущество 🙂
А в твоём случае ты берёшь сильный щит. и слабый меч. И выступаешь в роли танка 🙂
Да чувак, 3 строчки кода… а я думал… как? … а тут всего то …. ну да нужен слабый меч и хороший щит.
while True:
enemyIndex = 0
enemies = hero.findEnemies()
hero.shield()
while enemyIndex < len(enemies):
target = enemies[enemyIndex]
enemyIndex = enemyIndex + 1
if target.type == "archer":
hero.attack(target)
hero.shield()
while(true) {
var green = hero.findFlag(«green»);
var black = hero.findFlag(«black»);
var violet = hero.findFlag(«violet»);
var nearest = hero.findNearestEnemy();
if (green) {
hero.pickUpFlag(green);
} else if (black && hero.isReady(«cleave»)) {
hero.pickUpFlag(black);
// Руби!
hero.cleave();
} else if (nearest && hero.distanceTo(nearest) < 10) {
// Атакуй!
var enemy = hero.findNearestEnemy();
hero.attack(enemy);
}
}
Одеваем самый сильный шмот и меч с эффектом cleave, желательно самый слабый. Потому что ваш клон будет одет абсолютно также, кидаете черный флаг на нижних лучников, добиваете зеленым флагом лучников снизу вверх, если ваши лучники всех перестреляют на поле боя, переключайтесь на респившихся скаутов.
Спасибо добрый, вашей тактикой раскайтил с 3его раза
Было лень менять перса обратно на класса воин и вообще подбирать одежду. :))
Вот состряпал код на Pixie в полной броне, с автоматом, браслетом и ожерельем.
Лично у меня на момент прохождения остается большая часть войска в живых.
// Тебе необходима хорошая стратегия и подходящее снаряжение, чтобы победить.
// Твой клон имеет такое же снаряжение как и ты!
// Но он не так умён чтобы использовать особые способности.
function findStrongestEnemy(enemies) {
var strongest = null;
var strongestHealth = 0;
var enemyIndex = 0;
// Пока счетчик (enemyIndex) меньше чем длина массива врагов (len(enemies))
while(enemyIndex strongestHealth){
// назначь переменной strongest более «здороового» врага (enemy)
// не забудь переписать strongestHealth новым значением наибольшего здоровья врага enemy.health
strongest = enemy;
strongestHealth = enemy.health;
}
enemyIndex += 1;
// бездонные циклы никому не нужны (: >>>увеличивай счетчик enemyIndex
}
return strongest;
}
var enemies = hero.findEnemies();
var leader = findStrongestEnemy(enemies); // С помощью функции(копипаст из одной из предыдущих игр) находим клона(он самый «Жирный»).
while(hero.health > 600){
// Оптимальное местоположение для «подбора» врагов в «замесе».
hero.moveXY(74, 68);
// Обычных атакуем «до посинения», клона одиночными, чтобы не «залипать».
var enem = hero.findNearestEnemy();
if(enem && enem.type != «sand-yak»){
if(enem.type != «pixie»){
while(enem.health > 0){
hero.attack(enem);
}
}
// толкаемся.
if(hero.isReady(«flap»)){
hero.flap(enem);
}
}
// За счет скилов Pixie держим клона в бездействии.
if (leader) {
if (hero.isReady(«pacify»)){
hero.pacify(leader);
}
}
if (leader && hero.time > 6) {
if (hero.isReady(«paralyze»)){
hero.paralyze(leader);
}
}
}
// примерно на остатке в +- 500 хп героя убивается клон и решил до простоты оптимизировать дальнейший цикл.
hero.moveXY(90,55);
while(true) {
var enemy = hero.findNearestEnemy();
if(enemy.type != «sand-yak»){
hero.attack(enemy);
}
}