Отрывок из книги "Давайте поиграем! Разные игры".
Осенью 1989 года отец автора, преподаватель по радиоэлектронике в училище, принес домой списанный БЗ-34 (с датой изготовления, указанная на дне, – 08.1985) и книгу, тоже списанную, «Пять вечером с микрокалькулятором» (авторы Данилов И.Д., Славин Г.В., 1988). С этого момента автор (13 лет) увлекся калькулятором, который условно можно назвать ПМК (программируемый микрокалькулятор). Увлекся всерьез и, как оказалось, надолго. Позднее отец по настоятельной просьбе в 1992 году приобрел новый МК-52, а мать принесла с работы еще один списанный МК-56.
Автор увлекался, как не трудно догадаться, в первую очередь играми (всякие сложные инженерные программы его вообще не интересовали), но в первую очередь даже не самими играми, и даже не составлением программ, а самым интересным – придумыванием новых идей, которые затем уже воплощались в виде игр на ПМК…
Такие игры как «Посадка на Луну», «Гонки», «Кооперативное кафе», «Лунолет-Д», «Охота на скалеода», «Вечный календарь» и другие навсегда у автора запечатлелись в памяти на всю жизнь, а подшивки журнала «Техника-молодежи» с описанием игр до сих пор бережно хранит в своей библиотеке (весьма огромной, к слову).
К концу 1990-х годов популярность ПМК пошла на явный спад, а после того как у автора сломались все три калькулятора, он их тоже отложил в сторону. Однако, в октябре 2013 года произошло первое эпохальное событие – для смартфонов на базе Android появился эмулятор этих калькуляторов. Удивительно, но эмулятор на смартфоне эмулируют прежние калькуляторы один к одному, то есть на все 100% (то есть даже не прописанные команды, такие как, например, появление «ЗГГОГ»), причем сразу в двух вариантах: «МК-54» (БЗ-34, МК-56) и «МК-61» (МК-52). Есть чему радоваться!
…Разработчик эмулятора – Станислав Боруцкий (stanislavb@gmail.com); эмуляция реализована на основе проекта «emu145» Феликса Лазарева (http://code.google.com/p/emu145), который не поленился и с помощью мощного электронного микроскопа полностью выяснил архитектуру процессора ПМК; подробная история о проекте – http://zx-pk.ru/threads/15073-emulyator-(ne-simulyator)-mikrokalkulyatorov-rasshiryayushchegosya-ryada-b3-34-mk61.html).
Пользуясь случаем, обоим скажем: «Спасибо!»
Итак, снова появилась возможность играть на этих калькуляторах, и, значит, снова появилась возможность разрабатывать программы на них. Здорово! Но возникает резонный вопрос: зачем нам эти игры сегодня, и тем более в этой книге? Дело в том, что ряд игр этой книги («Охота на лис», «Быки и коровы», «Чёт-нечёт», «Ледовое побоище» и другие) как раз реализованы на калькуляторах, а раз так, то и сегодня с помощью эмулятора можно снова в них сыграть. По этой причине в книге приведены и сами программы для этих игр. Сам автор получает огромное удовольствие, периодически играя на смартфоне. Пользуясь случаем, автор помимо приведенных игр решил привести и другие интересные игры на ПМК, в первую очередь свои разработки, стараясь не просто выложить программы, но заодно и показать, как они реализованы, так как комментарии весьма облегчают понимание принципов программирования, и вполне возможно, что кто-то из современной молодежи, прочитав комментарии, захочет и сам программировать!
Заметим, что эмулятор под Андроид имеет два очень важных достоинства перед настоящим ПМК:
– Возможность не только работы в реальном времени ПМК (весьма медленным, кстати), но и в «мгновенном». Автор для интереса проверил разницу по времени (организовал простой цикл через FL0), и, как оказалось, «мгновенная» скорость превышает скорость ПМК примерно в 14-15 раз. Это даже не хорошо, а просто замечательно! Ведь эта «мгновенная» работа позволяет резко сократить как время самой игры, так и откладку программ, что очень удобно (так, отладка одной экономической программы «Кауфстен» у автора занимала порою несколько часов, и это являлось когда-то главной проблемой по усовершенствованию программы).
– Возможность сохранить в памяти смартфона до 100 программ, но при этом в отличие от ПМК сохраняются не только память программ (шаги), но и память данных (регистры), положение переключателя Р-ГРД-Г, вид ПМК (МК-54 или МК-61) и даже начальный шаг старта программы. Всё это весьма и весьма экономит время.
Можно сделать даже печальный вывод, что после появления эмулятора интерес работы на настоящем ПМК пропал – слишком много на ПМК тратится времени как на загрузку программ, как на записи данных в регистры, так и на саму игру.
30 мая 2016 года произошло второе эпохальное событие – программист Вадим Хохлов (г. Херсон, Украина) существенно улучшил эмулятор Станислава Боруцкого. Что за улучшения?
1. Был устранен главный недостаток – теперь в эмуляторе появилась возможность сохранять программы в виде отдельных файлов (в формате «*.pmk») на внешнюю память (например, на флэшку) и тем самым появилась возможность передавать программы другим людям (через интернет). Согласимся, что это очень удобно.
2. В эмуляторе появилась возможность импортировать не только саму программу, но и ее описание в формате «html», так что теперь не надо каждый раз держать при себе книгу или тетрадь с правилами.
3. В эмуляторе появилось руководство пользователя с подробнейшим описанием языка программирования калькулятора. Что примечательно, там же есть и все недокументированные возможности ПМК (они подготовлены настоящим «асом» программирования Сергеем Анваровым; автор предполагает, что никто в мире лучше не знает все возможности ПМК, чем Сергей Анваров; подробнее об Анварове сказано в главе «Программа «Морской бой»; пользуясь случаем, заодно скажем Анварову: «Спасибо!»).
4. В эмуляторе появилась возможность импорта текста программ. Например, теперь программы с сайта «http://lordbss.pp.ru/pmk.html» (самый полный сборник игровых программ) можно ввести, просто скопировав текст, а не в ручную вводя каждую команду.
5. Наконец, появилась возможность выхода из режима эмуляции и просмотреть на текущий момент все регистры памяти и регистры стека, а после просмотра вернуться обратно в режим эмуляции.
6. И много всяких «мелочей», такие как: копирование содержимого регистра Х в буфер обмена, возможность одновременного отображения на дисплее регистров Х и Y; и так далее.
Пользуясь случаем, автор выражает Вадиму огромное: "СПАСИБО!"
…Страничка, на которой можно ознакомиться, как создавался эмулятор Вадима, следующая:
http://4pda.to/forum/index.php?showtopic=748847.
Вадим Хохлов аккуратно собирает программы на ПМК на следующей страничке: https://github.com/xvadim/pmk61-programms.
Оба эмулятора (Боруцкого и Хохлова) легко скачать на «Play Маркет» или на сайте https://chramov1.wixsite.com/rasnie-igri.
Затронув о ПМК, нельзя не отметить несколько сайтов, на которых можно найти множество самых интересных и разнообразных программ для этих калькуляторов. Например, следующие.
1. Сайт Кузниченко Е.В.: http://lordbss.pp.ru/pmk.html.
2. Сайт Сергея Тарасова: http://arbinada.com/pmk.
3. Сайт, на котором можно скачать эмуляторы для ПМК и номера журналов "Техника молодежи" и "Наука и жизнь".http://www.emulator3000.org/rus-c3.htm.
Что еще сказать? Удивительно, но оказалось, что даже сегодня программирование на калькуляторах, у которых очень ограниченный объем памяти и отсутствует графический дисплей, весьма увлекателен. Но почему? Оказывается, малый объем программ, как ни странно, является большим плюсом в области программирования – человек, чтобы уложиться в малый объем, вынужден не просто программировать, а искать всё новые и новые способы по сокращению длины программы (а, значит, и время работы самой программы), и порою эти способы поражают своими нестандартными подходами! Вот эта особенность в калькуляторах, пожалуй, является даже самой интересной с точки зрения программирования. С другой стороны – малый объем программы является лучшей гарантией того, что игра не будет долгой и утомительной.
...У средневековых алхимиков была пословица: «Лишь при ограниченности ресурсов раскрывается настоящий талант». Эта пословица весьма точно подходит к разработчикам игр на ПМК!
И здесь трудно не привести цитату из книги «Игры и развлечения. Книга 2» (составитель Л.М.Фирсова, 1990).
…Нередко ограниченные возможности ПМК заставляют программистов идти на всяческие ухищрения, чтобы «втиснуть» выбранный алгоритм в более чем скромную память машины. Он должен в совершенстве владеть полным арсеналом не только стандартных, но и искусственных приемов, таких, как использование кодов команд в качестве адресов переходов, работа со «сверхчислами» (числа, порядок которых превышает 100), нештатное применение команд, связанных с образованием чисел (десятичная точка и ввод порядка), манипуляции переключателем углов (градусы-грады-радианы) для ввода информации с пульта во время работы по программе, использование операторов цикла вместо команд сравнения и так далее. Разумеется, он еще и обязан преобразовывать алгоритм к максимально лаконичному виду. Такая работа дает большое удовлетворение, а ее результат повергает в изумление тех, кто презрительно относится к «игрушечному компьютеру».
Современное молодое поколение XXI века, рожденное при интернете и ноутбуках, всё сказанное посчитает скорее чудачеством, чем серьезным увлечением, но поколению 1980-х годов это есть факт. К сожалению, поколению XXI века увлечение программированием на этих калькуляторах, судя по всему, уже не понять (автор настоящей книги в этом убедился на своих племянниках). А жаль. Если подытожить, то можно сделать такой вывод:
…Те, кому посчастливилось программировать на этих калькуляторах, полюбили их на всю жизнь и не забудут уже никогда. Те же, кому не посчастливилось, уже не полюбят их (за редчайшим исключением).
Автор попытался привести в этой книге не просто игры, а показать максимальное разнообразие игр на ПМК:
- динамические (то есть игры в режиме реального времени: «Учебный полет», «Тренировка памяти»);
- с видеоизображением («Охота на медведя»);
- игры на одном ПМК для двух человек («Танковая баталия», «Ледовое побоище», «Ночной бой»);
- логические («Быки и коровы», «Охота на лис», «Калах», «Ним с одной кучей»);
- вероятностные («Свинья»);
- и так далее.
Большинство игр печатается впервые – это тоже важно. Все предложенные ниже программы можно скачать на сайтах автора http://davaite-poigraem.1c-umi.ru, https://chramov1.wixsite.com/rasnie-igri или же на:
- http://4pda.to/forum/index.php?showtopic=748847;
- https://xvadim.github.io/xbasoft/pmk/pmk.html#links.