Вы когда-нибудь задумывались, что существуют игры, которые сами по себе являются языком программирования? Не обязательно Тьюринг-полный, но все же язык.
У меня есть отличный пример.
Геймплей Нейросимы-6 чудовищно похож на дебаг.
Снаружи, конечно, это похоже на стратегию, но внутри — отладочное, родное.
Посмотрите на эту картинку из жизни бойцов Пустоши.
Фигуры 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. Вторая призовая задача — исследование «блокировки мьютексов»:
Здесь вам нужно будет углубиться в правила точной формулировки работы сетей и сетевой парадокс.
Первым, кто решит, кроме подмигивание также получит коробку.
Решение:
Теги: #Воскресный вечер #игра #приз #Нейросима #отладка #отладка #Neuroshima Hex #Разработка игр #механика #Разработка игр #отладка
-
Инфографика: Дети И Сми
19 Oct, 24 -
В Android 2.2 Появится Функция Wi-Fi-Модема
19 Oct, 24 -
Вконтакте Глюк?
19 Oct, 24 -
Системы Контроля Версий: Fossil, Часть I
19 Oct, 24