Не все знают, но Тетрис был адаптирован в том числе и для советских программируемых микрокалькуляторов серии МК-52/61 независимо друг от друга в 90-91-е годы Дмитрием Моргуновым, С. Андриановым и Александром Михолапом. На калькуляторах этой серии не было графических дисплеев, а для управления в "динамичных" играх использовался только трехпозиционный переключатель. Поэтому в Тетрисе для этих устройств кладка строилась не из фигурок тетрамино, а из числовых блоков. Игра "Нумерис", написанная для ZX Spectrum, является своего рода адаптацией адаптации Тетриса. Игры трех авторов получились одновременно похожими на Тетрис, и в то же время требующих от игрока другого: не столько пространственного мышления, сколько навыков устного счета. Многие из ограничений, преследовавших программистов на программируемых МК, были сняты за счет использования мощной платформы. Вместе с тем нельзя сказать, что все получилось с первого раза и именно так, как эта игра была бы достойна выглядеть, и это лишний раз заставляет меня убедиться: те, кто писали игры на советских МК -- великие люди. Здесь, как и в версиях для советских ПМК, Вам нужно построить определенное число. Вернее -- и это первое отличие -- вы должны построить одно из чисел 555555555, 666666666, 777777777, 888888888 или 999999999... да, просто прямоугольник. Для этого сверху, как в настоящем Тетрисе, будут падать управляемые Вами блоки -- но, как я уже говорил, не тетрамино, а цифры от 1 до 6. Сложение происходит по правилам арифметики, т.е. при переходе через десяток увеличивается на 1 соседняя слева цифра в числе. Если же за десяток перевалит старший разряд (крайний слева)... что ж, вы сможете начать сначала. Ну а если вы сможете собрать прямоугольник, то -- второе отличие -- числа-столбики уменьшатся случайным образом (в оригинале игра завершалась). Управление -- OPM, ну и S для выбора скорости (вроде оно стало получше, чем в оригинале... я надеюсь). ПРИМЕРЫ (шкалы указаны для удобства объяснения, в игре их нет): 9 8 7 6 5 4 3 2 1___.___.___.___.___.___.___.___.___.| 9 8 7 6 5 4 3 2 1 Вертикальная шкала - значения разрядов (горизонтальная шкала). Разряды увеличиваются слева направо, как и в обычных числах. 9 <--O [5] P--> 8 M 7 | 6 V 5 4 3 2 1___.___.___.___.___.___.___.___.___.| 9 8 7 6 5 4 3 2 1 Падает цифра 5. Для его перемещения используются клавиши O и P, а также M для сброса вниз. Может падать любая цифра от 1 до 6. 9 8 7 6 5 [X] 4 [X] 3 [X] 2 [X] 1___.___.___.___.[X].___.___.___.___.| 9 8 7 6 5 4 3 2 1 Когда цифра достигает поверхности, то вырастает столбик с высотой, равной этой цифре. Соответствующий разряд (в данном случае пятый) увеличивается на эту цифру. 9 [2] 8 7 6 5 [X] 4 [X] 3 [X] 2 [X] 1___.___.___.___.[X].___.___.___.___.| 9 8 7 6 5 4 3 2 1 9 8 7 [X] 6 [X] 5 [X] 4 [X] 3 [X] 2 [X] 1___.___.___.___.[X].___.___.___.___.| 9 8 7 6 5 4 3 2 1 Если цифра падает на столбик, то она и высота столбика суммируются. Таким образом, пятый разряд увеличивается на эту цифру, как и в примере выше. 9 [6] 8 7 [X] 6 [X] 5 [X] 4 [X] 3 [X] 2 [X] 1___.___.___.___.[X].___.___.___.___.| 9 8 7 6 5 4 3 2 1 7+6=13, 13>10, поэтому происходит перенос: 9 8 7 6 5 4 3 [X] 2 [X] 1___.___.___.[X].[X].___.___.___.___.| 9 8 7 6 5 4 3 2 1 В более старший разряд перенесен 1, в младшем осталось 3. В игре это выглядит так. Если бы в этом примере шестой разряд был не равен нулю, то соответствующий ему столбик увеличился бы на 1. А если переполнение произойдет в крайнем левом (девятом) разряде, то игра завершится. 9 8 7 [2] 6 5[X] [X] [X] [X] [X] [X] [X] [X] 4[X] [X] [X] [X] [X] [X] [X] [X] 3[X] [X] [X] [X] [X] [X] [X] [X] [X] 2[X] [X] [X] [X] [X] [X] [X] [X] [X] 1[X].[X].[X].[X].[X].[X].[X].[X].[X].| 9 8 7 6 5 4 3 2 1 Задача игры -- построить прямоугольник размером 9хN, где N - от 5 до 9. За прямоугольник высотой 5-8 дается 500-800 (N*100) очков соответственно, за 9 -- 1000 очков. Прямоугольник должен не иметь ни "выступов", ни "впадин". 9 8 7 6 5[X] [X] [X] [X] [X] [X] [X] [X] [X] 4[X] [X] [X] [X] [X] [X] [X] [X] [X] 3[X] [X] [X] [X] [X] [X] [X] [X] [X] 2[X] [X] [X] [X] [X] [X] [X] [X] [X] 1[X].[X].[X].[X].[X].[X].[X].[X].[X].| 9 8 7 6 5 4 3 2 1 Когда прямоугольник построен, столбики уменьшаются случайным образом на величину от нуля до высоты столбиков. 9 8 7 6 5 [X] [X] 4[X] [X] [X] [X] 3[X] [X] [X] [X] [X] [X] 2[X] [X] [X] [X] [X] [X] [X] 1[X].[X].[X].[X].[X].[X].[X].___.[X].| 9 8 7 6 5 4 3 2 1 Как показано в примере, некоторые столбики могут остаться неизменными, а некоторые -- уменьшиться до нуля. Затем сверху начинает падать новая цифра, и игра продолжается. _____________________________________________________________ Yprit, 2020. С благодарностью VEDAsoft Oberon Club и лично Oleg N. Cher за ZXDev, в котором написана эта игра, и за поддержку и помощь по всевозможным вопросам, без которых ее бы также не было.