Крестоносец Келвинтафа — прохождение и описание алгоритма

Квест с крестоносцем (Kelvintaph Crusader) доставил мне массу удовольствия. Здесь пришлось действительно подумать и разложить весь поединок по полочкам, перед тем как мне удалось написать программу.

http://codecombat.com/play/level/kelvintaph-crusader

Вот как выглядит начальная сцена.

kelvintaph-crusader

В нижней части локации ваш герой должен одолеть отряд Brawler-ов, которых поддерживает батарея катапульт. Параллельно с битвой внизу необходимо отдавать приказы элитному отряду ваших союзников в верхней части лабиринта, чтобы те сумели одолеть ведьму и её приспешников.

Основной задачей является выжить самому и сохранить живым паладина. А особый бонус предлагается за сохранение всего отряда.

Задачу со своим персонажем я решил быстро. А вот паладина мне сохранить не удавалось, пока я не вспомнил обо всех способностях, которыми он обладает. Кроме лечения, он может ещё прикрываться щитом. Когда я это учел и разработал порядок действий для каждого члена отряда, задача была решена.

Схватка с отрядом Brawler-ов.

Здесь нужно было использовать катапульты. Они при удачном попадании уничтожают сразу весь отряд пехоты противника. Дальше остаётся разломать катапульты и встать на «крестик». Когда ваш герой достигает выхода, открывается ледяная дверца в верхней части лабиринта.

Чтобы попадание было удачным нужно вовремя отбежать от летящих ядер. Позиции ядер можно получить из общего массива выпущенных снарядов:

Если ядра высоко — то отбегать не нужно, для этого проверяем координату z.

Есть один нюанс в управлении главным персонажем. Если ему отдать команду attack, управление не будет передано в программу, пока герой не выполнит команду. Тем временем ваши союзники могут простаивать, ожидая указаний. Чтобы справиться с данной проблемой, я использую функцию heroAttack(enemy) — см текст программы.

Схватка союзников.

Сценарий действий союзников, описан в специальном массиве tar, в котором каждый из них получил список приоритетных целей. Кроме имен врагов, в списке встречаются команды — shield и move.

Вся работа по сценарию осуществляется в функции comm().

Первостепенной задачей было уничтожить ведьму Yzzrith, поэтому лучники и паладин сразу атакуют её. Два воина тем временем сдерживают огров. После гибели чародейки, паладин закрывается щитом, а лучники фокусируют свой огонь сначала на ограх, потом на скелетах.

Уничтожив всех врагов, отряд перемещается к выходу в обход капкана.

Текст программы.

Я использую javascript.

К слову надо сказать, что один из воинов у меня дохнет, совсем чуть-чуть не успевая получить лечение от паладина. Так что сценарий нуждается в небольшой коррекции.

Написать комментарий

Мало букафф? Читайте есчо !

Сокровища Темнолесья ур. 6 в Code Combat

Февраль 14, 2016 г.

Это продолжение, начало см. тут. А продолжаем мы рубиться в codecombat. С прошлого раза мне удалось раздобыть кое какие новые вещицы, которые повышают ...

Читать

Развитие навыков программирования у ребенка

Февраль 10, 2016 г.

Каждый родитель думает : кем же станет его ребенок? Дети способны постигать азы тех или иных наук с очень раннего возраста. Они как губка впитают все ...

Читать

 

Комментарии к «Крестоносец Келвинтафа — прохождение и описание алгоритма»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Крестоносец Келвинтафа — прохождение и описание алгоритма”

  1. Alex:

    Прошел я этот уровень на все задания. Причем за героя вообще элементарно… ему достаточно было просто бежать по прямой до точки — катапульты сами всех (и себя) поубивали

    А вот с юнитами пришлось повозиться. После кучи разных последовательностей действий и наблюдений, что делают враги, такой порядок:
    Лучники атакуют ведьму, потом Трогдора, Расти и Скулли
    Паладин пытается лечить, если не выходит, то атакует Трогдора, Расти и Скулли
    Солдаты атакуют ведьму, а когда она умирает — бегут на точку, уводя за собой Они

    В моем плане было потом добивать Они (паладин и лучники с остатками успешно справляются в таком раскладе). Но оказалось, что задание засчитывается, когда солдаты добегают до точки… что собственно даже соответствует условию: там сказано, что хотя бы один союзник должен сбежать, что и происходит.