Как сделать игру на калькуляторе

Программирование на калькуляторах МК: как я делал графические игры

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

На первой странице фломастером гордо накарябан урл сайта на народе, который мы делали чуть ли всем двором. Я периодически буду на него ссылаться.

Начало записей — основы программирования (код был написан для МК-61, но будет работать и на подобных устройствах).
Для перехода в соответствующий режим нужно нажать — Fпрг, для выхода — Fавт.

Базовый приём, которым я пользовался при написании программ — работа с регистрами.
Для записи в регистр используется кнопка П → Х, для вывода X → П. Например, последовательность нажатий 72 П → X 1 записывает число 72 в регистр RG1, а Х → П 1 выводит значение из регистра RG1 в регистр X.

Содержимое регистра X всегда отображается на экране — это один из стековых регистров (X, Y, Z, T). Для работы со стековыми регистрами используются команды:
— В↑ (копирует содержимое регистра X в Y, Y в Z, и т.д).
— (меняет содержимое регистров X и Y местами)
— СХ (стирает содержимое регистра Х)

Также я активно использовал функцию if — за это отвечают клавиши Fx=0, Fx=/0, Fx 0. Синтаксис:
Fx#0 (шаг для перехода, если условие не выполняется) (последующая команда при выполнении условия).

Подробнее о синтаксисе можно почитать в этой статье.

Перейдём к самому интересному. В те годы и при тех обстоятельствах ни у кого из моей компании не было устройств, на которых можно было бы программировать — мы проводили у калькулятора целые часы, и нам это действительно нравилось. Как любые дети, мы хотели играть, и заметили, что функция «инв» (логическое инвертирование) может преобразовать числа, например, в символ «Г». «Е» или «C», а если вывести на экран «8-E-C» и перевернуть калькулятор по часовой — то мы увидим что-то, похожее на человечка.

Как сделать игру на калькуляторе. Смотреть фото Как сделать игру на калькуляторе. Смотреть картинку Как сделать игру на калькуляторе. Картинка про Как сделать игру на калькуляторе. Фото Как сделать игру на калькуляторе

Игра, код которой был разрисован в тетради краше всего, называлась «Lamer Andrew meets America».

Инструкция гласит: «Вы можете посмотреть мультфильм (нажав ВО СП), выстрелить в монстра (БП 53), сломать машину врага (БП 74). Если вы умрёте, то увидите символы ‘8 *****’, если выиграете — ‘ECC’. В этой игре можете использовать сразу несколько видов — спереди и сверху». Незамысловато.

В значения регистров командой П (например, 80013 инв П 0) заносилась «анимация»:

РегистрЗначение для «нормального вида»Значение для «продвинутого вида»
080013 инв80013 инв
18 инв8 инв
281 инв81 инв
3801 инв8573 инв
4800077 инв857 инв
580109 инв81308333 инв
680108 инв81300876 инв
78077099 инв8570757 инв
88015 инв8135 инв
980105 инв81305 инв
a, b5 инв5 инв
c807799 инв857757 инв
d80779 инв8577333 инвa

Сам код (для сокращения записи операции «П→x», «x→П» и «С/П» обозначены как «ИП», «П» и «СП») простой и длинный:

Итак, наша программа в основном состоит из операторов вывода на экран «анимации» (последовательности значений регистров), операторов остановки и безусловного перехода. Например, «стреляет» наш человечек вот так:

Как сделать игру на калькуляторе. Смотреть фото Как сделать игру на калькуляторе. Смотреть картинку Как сделать игру на калькуляторе. Картинка про Как сделать игру на калькуляторе. Фото Как сделать игру на калькуляторе

Реальный калькулятор перед новым выводом на экран гасил его на доли секунды — это придавало больше реалистичности «стрельбе».

Просто, но результат нам очень нравился, а родители даже нарисовали нам грамоту 🙂

Не наигрались? Второй (и последний) код из той самой тетради — тамагочи (да, тоже с графикой):

[ип1] [ип1] [ип1] [ип1] [ип1] [с\п] [ипВ] [В^] [2] [0] [-] [Fx>/=0] [19] [8] [0] [0] [1] [3] [Kинв] [С\П] [ипВ] [в^] [1] [+] [пВ] [С\П] [Сх] [ипС] [В^] [1] [0] [-] [Fx>/=0] [35] [ип3] [с\п] [ипD] [В^] [1] [5] [-] [Fx>/=0] [44] [ип3] [с\п] [ип8] [В^] [1] [0] [-] [Fx>/=0] [] [53] [ип3] [сп] [ВО] [ипD] [B^] [2] [-] [ПD] [C/П] [ип6] [ип7] [8] [ВО] [ипС] [B^] [2] [-] [пс] [о] [сп] [ип9] [ипА] [ВО] [ип8] [В^] [3] [-] [п8] [с\п] [ип4] [с\п] [BО] [ипВ] [B^] [10] [-] [Fx>/=0] [93] [ип2] [п1] [ВО]

Инструкция, переведённая с того языка, который я принимал в детстве за английский:

Нажмите С\П — вы увидите Андрея. Нажмите С\П ещё раз, и он начнёт программировать. Вы увидите какие-то цифры — это вывод с его программ. Нажмите С\П. После пяти программ Андрей вырастет на пять лет. Ваша цель — дорастить его до 20ти, помогая Андрею:

1. Кормите его. Нажмите БП 65 и С\П. Он поест, и коэффициент голода понизится. Если значение коэффициента достигнет 10 — он умрёт, а вы увидите отличное видео.

2. Гуляйте с ним. Нажмите БП 84 и С\П. Он погуляет и сходит в туалет. Если значение «антипрогулочного» коэффициента достигнет 10 — он умрёт. С видео!

3. Сон. Когда Андрей устал, нажмите БП 75 С\П. Чтобы разбудить — нажмите С\П. С видео.

4. Посещение врача. Когда Андрею исполнится 10, ему нужно будет сходить к врачу. Нажмите БП 55 С\П.

Если вы выиграете — вы увидите » 8 ЕС «, если проиграете — » 8——8 «. Андрей меняется по мере роста!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *