Ручнаяя мастерская

Играем в одном измерении — 2


Перенос классических видеоигр из двух измерений в одно может давать интересные результаты. Я уже переводил статью автора Instructables под ником mischka о соответствующем эксперименте с игрой, похожей на Pong. А автор того же сайта под ником Infinityspace перенёс в одно измерение игру, похожую на Duck Hunt. Его конструкция является слегка видоизменённым вариантом самоделки другого автора того же сайта, под ником Joe_barhouch, о которой он рассказал здесь.
Сюжет игры следующий: мимо охотника летает утка, и нужно нажать кнопку в тот момент, когда она находится прямо над охотником. Впрочем, классические видеоигры и так минималистичны, а после переноса в одномерное пространство — тем более. В нём неизвестно, что такое «над», и считается, что в середине однострочного дисплея расстояние между уткой и охотником равно нулю, поэтому то, что скорость полёта дроби является конечной, не учитывается, и упреждение, которому в реальном мире охотников учат первым делом, в этой игре не требуется.
Утка — многоразовая, ведь в одномерном пространстве ей и падать некуда. Когда охотник в неё попадает, она мигает, и… продолжает лететь дальше, но с большей скоростью. Возрастание скорости с каждым попаданием продолжается, пока охотник не начнёт промахиваться. Если он промахнётся пять раз, даже не подряд, утка, телепортировавшись в начало строки (выходит, в одномерном пространстве телепорироваться — простое и обыденное дело, как в двумерном или трёхмерном — ходить или ездить), отдыхает и даёт отдохнуть охотнику, после чего игра начинается снова с малой скоростью.


Да уж, это вам не это, обратите внимание на использование там Ctrl+C в том же значении, в каком оно применяется до сих пор в консолях современных UNIX-подобных ОС (следующее видео снял Sergei Frolov):


Но вернёмся в мастерскую Infinityspace — ему не терпится поэкспериментировать с одномерным пространством, пусть даже виртуальным, поэтому он срочно готовит кнопку, светодиоды, перемычки «дюпон», USB-шнур для Arduino и токоограничительные резисторы:

Играем в одном измерении - 2Играем в одном измерении - 2
Составляет в программе Fritzing схему подключения светодиодов к резисторам. Все светодиоды подключены анодами к выводам Arduino, катодами к резисторам, противоположные выводы резисторов соединены с общим проводом. Кнопка на схеме не показана, она при нажатии соединяет вывод 13 Arduino с общим проводом. Её рекомендуется подтянуть вверх резистором, либо включить на выводе 13 внутренний подтягивающий резистор программно.

Играем в одном измерении - 2
Далее приведён список задействованных выводов Arduino:

Светодиод 1 — вывод 2
. . .
Светодиод 9 — вывод 10
Кнопка — вывод 13.

Скетч мастер выкладывает здесь. При желании можно подредактировать его так, чтобы промахиваться мимо утки можно было не 5 раз, а, скажем, 100. И вспомнить ZX Spectrum и читерство командой POKE по специальным брошюрам. Особенностями программы являются комментарии на китайском языке, а также вывод в монитор последовательного порта сообщений о событиях, происходящих во время игры.
Корпус игры мастер изготавливает из картонной коробки, хотя можно применить для этого пластмассу, фанеру, листовой металл, и т.п. Самым бюджетным, но при этом прочным корпусом является распаечная коробка. При переносе самоделки в корпус рекомендуется удалить breadboard и перемычки «дюпон» — они пригодятся для отладки следующих проектов — и соединить всё пайкой.

Играем в одном измерении - 2Играем в одном измерении - 2Играем в одном измерении - 2Играем в одном измерении - 2Играем в одном измерении - 2Играем в одном измерении - 2Играем в одном измерении - 2
Обладая достаточной фантазией, можно придумать одномерные аналоги и других классических игр. И даже изготовить для них единую консоль с линейкой светодиодов и несколькими кнопками, в которой микроконтроллеры с различными одномерными играми можно менять подобно картриджами. Одномерность — не единственное направление применения KISS-принципа к играм. Есть ещё аудиоигры, где изображение отсутствует, и всю информацию игрок получает в виде звуков. Первоначально такие игры разрабатывали для слепых, но затем желающие играть в них нашлись и среди зрячих.

Присоединяйтесь!

Не стесняйся, общайся. Мы любим встречать интересных людей и заводить новых друзей.