Посмотрите вот на эту картинку из жизни бойцов Пустошей.
Фишки с 20/20 – это командные центры, оставшиеся две — это фишки бойцов с ближней атакой по направлению треугольников по краям. Пока всё просто – синий робот с ножами бьёт желтого ковбоя, а ковбой бьёт по синему комцентру. Давайте усложним стек и запустим компиляцию.
Предположим, ситуация такая:
Теперь нам важны приоритеты – эти вот числа на фишках. Это уровень инструкций в стеке. Если начать исполнение боя на картинке выше, то получится следующее:
== Слой 3
Жёлтый панк с приоритетом 3 бьёт по мутанту и уничтожает его (если бы это не было сделано, мутант вломил бы на шаге 2 комцентру жёлтых). Больше никого с таким приоритетом нет. Идём ниже.
== Слой 2
Жёлтый бегун и «ковбой» одновременно бьют по синему комцентру, а по «ковбою» бьёт робот с ножами. Комцентр теряет 2 единицы брони, «ковбой» уничтожен.
== Слой 1
С приоритетом 1 никого нет. Эта часть стека просто пропускается.
== Слой 0
Комцентры действуют с приоритетом 0 и бьют всех врагов рядом. Синий комцентр отстреливается и уничтожает бегуна и товарища с зазубренным ножиком. Он бы уничтожил и «ковбоя», да вот незадача – его уже два такта как нет.
Конец стека. Вводите новые данные.
Попробуете сами разобрать ситуацию вот с такими данными на входе?
Здесь модуль с плюсом забирает на себя атаку одного из бойцов, к которым подключен. То есть, грубо говоря, мутант около жёлтого комцентра получил вторую жизнь. Фишка взрыва – это жёлтые из текущего состояния запустили исполнение стека. Сетка у жёлтого парня с пушкой – это блокировка: вражеская фишка, на которую направлена сетка, не ложится в стек.
Проиграли ситуацию в голове? Сколько хитов у какого комцентра осталось? Какие фишки всё ещё на поле после полного разбора стека?
Суть игры в том, чтобы выкладывать 2 из 3 фишек каждый ход оптимальным образом. Каждый из игроков в голове проигрывает возможные варианты разбора стека и размещает свои войска-операторы так, как ему наиболее выгодно. В месиве настоящего боя даже простой ход становится настоящей отладкой:
Обратите внимание на красных стрелков – они бьют по ближайшей чужой фишке по направлению атаки, но не поражают свои войска.
Теперь вы сами
Вы играете за рыжих рейдеров – Гегемонию. У вашего командного центра 2 хита, у противника 6. Нужно взять и положить на поле 3 фишки из пяти доступных. После этого запустится компиляция, и в конце исполнения у противника должно быть меньше хитов, чем у вас. Фишки можно вращать.
Посмотрим, что есть: парень с ближним и дальним боем может вбить сразу два повреждения, и он быстрый. Прочный парень с двойной ближней атакой в три стороны, бронёй и защитой (у него 2 хита, в отличие от всех остальных однохитовых подразделений) тоже хорош, но чертовски медленный. Ещё один боец с двойной ближней атакой по верхнему сектору – компромисс между скоростью и мощью. И два рейдера – очень быстрые, не такие сильные.
Ещё одна сущность – приказы
Перемещение (кривая стрелка) позволяет сдвинуть любую свою фишку на соседнюю свободную и повернуть, если хочется. Можно только сдвинуть, можно только повернуть, можно и то, и то. С помощью толчка (стрелка вверх) до компиляции вы можете сдвинуть чужую фишку. Ваша выталкивает её в направлении от себя на клетку. Если есть свободная клетка около толкаемой фишки, и в этой клетке толкаемая фишка будет дальше от вашей толкающей, чем раньше, можно использовать этот приказ. Снайперский выстрел снимает один хит с любого вражеского подразделения, то есть уничтожает всё, что не бронировано.
У вас хит, у зелёного врага – два. Да, ещё одно. Комцентры могут давать бонусы соседним своим фишкам: треугольник означает усиление атаки (здесь мужик с кривым ножиком получает вторую ближнюю атаку), звёзды у зелёных – возможность уйти в стек дважды (в свою инициативу и ниже, то есть стрелок над зелёным комцентром будет атаковать дважды на 3 и на 2).
И последняя языковая конструкция – модули
Это подразделения, которые меняют свойства соседей, к которым подключены палочками. Треугольник и плюс – это усиление соответствующей атаки. +1 – это увеличение скорости, то есть приоритета обработки в стеке. Плюс – это защита от одной атаки (вместо атакуемого войска модуль с плюсом принимает атаку на себя). Задача:
У вас хит, а у жёлтых и синих врагов – по три хита. Можете использовать три любых модуля из пяти, у нас демократия. Вражеский комцентр даёт плюс к инициативе (стрелок за синим комцентром стреляет на фазе 4 в самом верху стека), ваш – усиливает на 1 дальний бой.
Вот решение, попробуйте разобраться. Медленно, но верно мы подходим к циклам и рекурсии, чувствуете?
У одной из армий есть возможность построить бесконечный цикл, нанося бесконечные же повреждения до конца разбора стека.
Посложнее
Вот этюд, сможете быстро растолкать врагов? Вы играете за красных, у вас 1 хит. У жёлтых 6 хитов, у зелёных 3, у синих – 2.
Выбирайте любые три фишки из пяти.
Видите, как здорово? Теперь представьте, что в настоящей игре такая отладка каждый ход. Вот почему я говорю про тактический симулятор дебага, да-да-да.
Вот настольная игра-оригинал, на странице которой есть детальные правила.
Призовой этюд
Вы – Аванпост.
Эта задача решена.
Собственно, к чему я это. Если вы разработчик, то игра вам точно понравится. Мы же нашли ей ещё применение — советовали родителям как обучающую по логике-программированию.
P.S. Вторая призовая задача, этюд «блокировка на мьютексах»:
Здесь надо будет залезть в правила за точной формулировкой действия сетей и сетевым парадоксом. Первый решивший кроме winKING тоже получит коробку.
Решение:
Комментарии (58)
winKING
25.05.2015 00:03+1
Если правильно рассчитал, то у синих 2(может 3, смотря как поступит наш 2 1 с дальней атакой на 1ом слое ) у наших 4Milfgard Автор
25.05.2015 02:27Да, верно. Толстого уничтожает стрелок справа в слое 4 стека. А пушка в центре стерляет на 3, 2 и 1.
Напишите мне в личку, пожалуйста, ФИО, адрес и телефон для доставки коробки.
tzlom
25.05.2015 00:15Фотошопа нету, прийдётся словами
Координаты начинаются с единицы, слева направо, сверху вниз
Поворачиваем снайпера в столбце 4 стока 3 в сторону берсерка столбец 2 строка 4
Убийство кидаем на пулемётчика столбец 3 строка 5
Выставляем мечника с 2мя пунктами ближнего боя в столбец 4 строка 1
Выставляем гашение инициативы -1 — между базами столбец 2 строка 2
kraidiky
25.05.2015 08:32+2Интересная игра, но ужасно много правил. :)
Как я и говорил в прошлый раз, ИМХО, можно получить более интересный результат имея на поле больше фишек с более простыми правилами.
Впрочем, вопрос вкуса и целевой аудитории.Milfgard Автор
25.05.2015 11:05После обучалки на той же iOS всё достаточно просто и логично. Но на столе считать много, да.
grasshoppergn
25.05.2015 09:05Во второй призовой задаче нужно убить гибрида сверху в центре, бойца с сетью слева-снизу и бойца с сетью справа-сверху
AdmAlexus
25.05.2015 09:18Эмм… А во второй задаче (этюд №50) мы за кого играем?
bsboris
25.05.2015 10:03Есть хороший порт этой игры на iOS.
Milfgard Автор
25.05.2015 11:04Там три версии игры. Бесплатная обучалка с очень тупым AI и двумя фракциями, платная полная игра с не менее тупым AI даже на высокой сложности — и отличный набор тактических этюдов, отличный от настольных.
Ramires
25.05.2015 10:29grasshoppergn
25.05.2015 10:37Так у красных остается 1 хп и у нас (желтых) остается 1 хп. Ничья
grasshoppergn
25.05.2015 10:39Хотя нет, есть же еще стрелок в самом низу
grasshoppergn
25.05.2015 10:43+2Зато, судя по правилам, фишка снайпера не может быть применена на свой юнит
AdmAlexus
25.05.2015 10:47Да, в правилах четко написано, что
Фишка снайпера наносит одно повреждение одной
выбранной ВРАЖЕСКОЙ фишке на поле
Так что я думаю, твое решение пока единственное.
AdmAlexus
25.05.2015 10:42grasshoppergn ты вот такой вариант имел ввиду?
grasshoppergn
25.05.2015 10:43да
AdmAlexus
25.05.2015 10:51А в этом варианте у командного центра Молоха (красные) разве не остается 1 ХП? Солдата с сетью и Убийцу Борго (синие внизу) блокируют сети. Т.о. по кц Молоха урон наносит только наш Универсальный солдат. Или я что-то неправильно просчитал?
AdmAlexus
25.05.2015 10:54Сам себе и отвечу. Не учел бонус атаки от нашего командного центра.
grasshoppergn
25.05.2015 10:56именно:)
Milfgard Автор
25.05.2015 21:41Друзья, кто отвечал ниже, простите меня. grasshoppergn выиграл, поскольку в третьей ревизии правил есть важное замечание в разделе «игра втроём, каждый сам за себя» о том, что фишки армии, у которой уничтожен комцентр, уничтожаются (удаляются с поля) после боя, а не сразу в той фазе, когда был уничтожен комцентр игрока. Иначе на фазе три один из сетевых комплексов перестал бы блокировать угрозу нашему комцентру. Этюд, видимо, писался ранее. Итого — к вечеру я получил возможность проверить все детали, простите ещё раз за ожидание.
Milfgard Автор
25.05.2015 11:12Ещё два этюда попроще. Внимание, они не призовые, а просто подумать. Поэтому не такие зубодробительные, как выше.
AdmAlexus
25.05.2015 12:13Эмм. А можно вопрос по второй призовой? Решение grasshoppergn верное ил нет? А то не озвучили правильный ответ… Стоит дальше ломать голову?
Milfgard Автор
25.05.2015 12:25Пока верного ответа на второй нет.
grasshoppergn
25.05.2015 12:37эмм… а в чем ошибка моего решения?
Ramires
25.05.2015 13:52У этой задачи много решений, в ответах наверное дано другое.
Вот пример моего решения: Гегемония — 1, Молох — -1, Борго — 0.
mifki
25.05.2015 13:57Хорошая, должно быть, игра, пару раз пытался пробовать, но очень неприятна графика и сеттинг, не идёт вообще.
AdmAlexus
25.05.2015 14:16Голова уже не варит, но может так:
Если конечно я все правильно рассчитал.Ramires
25.05.2015 14:43Не понимаю, кто будет убивать КЦ красных. Желтый сеткой поймал снайпера синих внизу, красный робот поймал синего бойца рядом с КЦ, а желтый снайпер отвернулся от КЦ.
AdmAlexus
25.05.2015 14:48Желтый снайпер в 3 фазе атакует ближним боем скованного сеткой синего бойца, а дальним выстрелом выносит красного робота. Соответственно уже со следующей фазы синий боец рядом с красным КЦ будет свободен. А он начинает работать только в 1 фазе, и соответственно тремя ближними ударами кончает красный КЦ.
Milfgard Автор
25.05.2015 21:43Нет, он одновременно делает ближний удар и дальний удар в ближайшего бойца, это не последовательные шаги.
AdmAlexus
25.05.2015 14:39Еще вопрос появился. Если к примеру КЦ уничтожен в стадии инициативы 3, то его стрелки могут действовать в нижних фазах в течении этого хода или нет?
Milfgard Автор
25.05.2015 21:25В зависимости от ревизии правил ответы такие:
1. Вместе с уничтожением комцентра уничтожается и армия.
2. Не может.
alcr
25.05.2015 15:291. Убить красного стрелка сверху
2. Убить красного бойца с сетью в левом нижнем углу
3. Отвернуть нашего бойца с сетью во втором столбце, например вниз, чтобы не блокировал синего стрелка.
saboteur_kiev
25.05.2015 18:44+2В дремучие девяностые были MUD-ы, текстовые онлайн РПГ игры, предки того, что сейчас выглядит как Lineage, WOW…
Протокол был обычный telnet, поэтому знание практически любого скриптового языка позволяло написать простенького бота. Многие клиенты прямо предлагали свой встроенный скриптовый язык триггеров для автоматизации процесса.
Для многих отдельно взятых игроков, игра в MUD была некой негласной битвой между ботописателями и ботодетекторами.
Когда-то такой сервер админил я, и вот, 15 лет спустя, многих продвинутых игроков знаю как хороших админов/девелоперов.
FError
25.05.2015 21:14Решение с использованием 2 фишек.
Тут изображение с отмеченными заблокированными юнитамиMilfgard Автор
25.05.2015 21:45Красиво. У меня нет третьей коробки Нейрошимы-6, но я пришлю вам Сопротивление, если вы не против. Пожалуйста, в личку ФИО, адрес и телефон.
omican
26.05.2015 13:29+2Открыл Нейрошиму пару недель назад на игротеке Мосигры. Игра настолько хороша, что ради возможности написать этот комментарий я проапгрейдился до полноценного хабровского аккаунта :-)
Успел сыграть всего 4 партии, но уже чувствуется, что игра весьма глубока, и learning curve в ней соответствующая. В частности, для успешной игры нужно знать сильные и слабые стороны каждой армии, помнить, какие вообще есть фишки (сколько фишек движений у зеленых, например) и считать уже вышедшие в сброс.
dougrinch
26.05.2015 16:011. Так и не смог понять (а в исходном посте не нашел), как считается урон? Даже в самом («Попробуете сами разобрать ситуацию вот с такими данными на входе?») у синего комцентра никак не получается 15 хп. Было больше, было меньше, а ровно 15 — никак.
2. Если я правильно понимаю, то данные этюды из компьютерной версии. Можно ссылку на нее?omican
26.05.2015 16:141. Желтый командный центр на 1 увеличивает силу ближнего боя все соседним союзным фишкам. Поэтому синий центр получет 2 единицы от верхнего левого юнита, 2 от левого нижнего и 1 от правого нижнего.
dougrinch
26.05.2015 19:13+1В таком случае не сходится самый первый пример с разбором:
Жёлтый бегун и «ковбой» одновременно бьют по синему комцентру, а по «ковбою» бьёт робот с ножами. Комцентр теряет 2 единицы брони, «ковбой» уничтожен.
Разве комцентр должен был потерять не 3 хп? Одну от ковбоя и 2 от бегуна (сам бегун + бонус от соседнего союзного кц).omican
26.05.2015 21:26Небольшое дополнение: по той же причине желтый панк наносит мутанту также 2 единицы урона. Для обычных юнитов типа этого мутанта разницы нет, — все равно погибнет. Но есть довольно много юнитов с двумя «HP», обычная атака с одного раза таких не убивает.
winKING
26.05.2015 16:24omican опередил. Чуть подробнее:
== Слой 3:
КЦ синих получает 2 урона от бойца с ближней и дальней атакой. Убивается медик синих от второго бойца желтых.
== Слой 2:
КЦ синих получает 2 урона от бойца желтых, расположенного рядом с КЦ желтых (+1 урон добавляет КЦ желтых). КЦ синих получает 1 урон от бойца с сетями. КЦ желтых получает 2 урона. Боец 3-ка желтых, боец 2-ка с сетями погибают.
== Слой 0:
КЦ обеих команд убивают стоящих вокруг бойцов.
== Итого:
КЦ желтых 18, КЦ синих 15. На поле оба КЦ и два одинаковых бойца синих.
dcc0
Думал, лет 12 назад, когда впервые попробовал написать скрипт для игры Ultima Online.
Milfgard Автор
Есть ещё игры-детективы, они тоже могут быть очень похожи на отладку. Но там язык не фиксирован чаще всего.
kurokikaze
SphereServer? :)