Пользователям МК-85 !!!! Игра "Тетрис" Автор: Сергей Богданов (fiks), 2000 год Редактировано: Bs0Dd, 2023 год, [mk.bs0dd.net] Оригинал взят с сайта: http://www.aha.ru/~fiks/tetris/ ПЕРЕД началом ввода кода необходимо заполнить ячейки Z$(10)-Z$(24) кодами адресов подпрограмм, выполняемых в определенной последовательности в зависимости от номера фигуры. Для этого нужно воспользоваться вспомогательной мини-программой: 1 DEFM24:FORC=10TO24:Z$(C)="":FORI=1TO7:PRINT"C";C-9;" Ч";I; 2 INPUTV:Z$(C)=Z$(C)+CHRV:NEXTI:NEXTC Программа будет запрашивать числа из данной таблицы (с указанием строки и номера числа из таблицы) - вводим их по очереди: 154 185 169 75 87 184 184 168 37 184 184 184 184 184 183 154 139 38 25 83 187 183 154 26 169 37 26 188 158 88 188 184 184 184 184 168 184 184 184 184 184 184 168 168 184 184 184 184 184 185 164 33 159 22 58 38 183 154 182 169 38 25 87 154 183 169 28 58 37 184 53 164 182 159 35 82 188 168 33 187 184 184 184 184 183 154 182 163 118 82 58 154 186 169 76 188 184 184 168 78 184 184 184 184 184 После ввода последнего числа программа автоматически завершится. Если у вас обычная МК-85, необходимо стереть данную программу, иначе для игры не хватит места (игра занимает 1196 шаг из 1221). Учтите, что стерев (намеренно или по неосторожности) ячейки с данными, придется вводить их заново, стерев часть игры для мини- программы (требуется 266 шагов). Теперь вводим код самой игры: 1 DEFM 9:VAC:G=1111111:GOTO 50 2 E=E-2 3 E=E+1:RETURN 4 B=C:RETURN 5 F=2:RETURN 6 F=3:RETURN 7 F=1 8 C=C+1:FOR D=E TO E+F-1:G(C)=G(C)+10^D:NEXT D:RETURN 9 IF C390;Z(8)=Z(8)-380:GOTO 73 75 Z(9)=Z(9)+4:CSR 5,:DEFM 24:CSR 11:PRINT CHR(Z(8)/10); 78 FOR Z(6)=1 TO 7:Z(7)=ASCIGETC(Z$(A+9),Z(6))/10 80 GOSUB INT Z(7):GOSUB 10*FRAC Z(7):NEXT Z(6):DEFM 9 81 IF C>24;CSR.,:PRINT "Game over",Z(9):GOTO 1 82 Z(6)=C-4 83 FOR E=Z(6) TO C:A=G(E):FOR F=0 TO 6 85 IF FRAC(A/10)=0;DRAWC E,F:GOTO 88 86 DRAW E,F 88 A=INT(A/10):NEXT F:NEXT E:FOR E=1 TO 24 90 IF G(E)=G;FOR F=ETO23:G(F)=G(F+1):NEXTF:Z(6)=E:C=24:GOTO 97 92 NEXT E:GOTO 50 97 Z(9)=Z(9)+7:Z(5)=0:GOTO 83 98 GOSUB 99+A:A=A+1:F=LEN$:E=5-F:$="00"+$+"000":$=MID(1,7) 99 RETURN 100 $="232":RETURN 101 $="72":RETURN 102 $="262":RETURN 103 $="27":A=0:RETURN 104 $="4444":RETURN 105 $="0F":A=4:RETURN 106 $="66":A=6:RETURN 107 $="C6":RETURN 108 $="264":A=7:RETURN 109 $="462":RETURN 110 $="6C":A=9:RETURN 111 $="E2":RETURN 112 $="226":RETURN 113 $="8E":RETURN 114 $="644":A=11:RETURN Игру необходимо запускать в турбо-режиме (включить МК с зажатым '+'). Вид дисплея: 123456789012 !------------! !#####******$! !------------! # - "стакан", в который падают фигуры, первый столбец первого сегмента отображает "дно" стакана. * - спусковая зона, по которой вниз спускается фигура перед падением в стакан. Пока фигура "падает", ей можно управлять. $ - в этом сегменте после спуска каждой фигуры отображается символ, сообщающий количество десятков набранных очков. Определить число можно в соответствии с десятичной кодовой таблицей МК-85, приложенной в инструкции к микрокомпьютеру. Перед появлением новой фигуры символ-индикатор исчезает. Например: символ '{' обозначает 70-79 очков, символ '!' - 330-339 очков и т.д. Управление (если держать МК-85 вертикально, экраном к себе): W - фигуру влево X - фигуру вправо S - поворот фигуры A - сброс фигуры После появления фигуры у нас есть около 5-6 секунд, чтобы повернуть и выбрать место, прежде чем фигура пройдет спусковую зону и автоматически упадет в стакан. Непосредственно в стакане фигурой управлять нельзя, т.к. после спусковой зоны фигура сразу оказывается на дне стакана. За каждую сброшенную фигуру по умолчанию дается по 4 очка, за каждую снесенную линию - 7 очков. Полное количество очков будет показано при проигрыше, после надписи "Game over". ===================== От редактора: большое спасибо Сергею Богданову за данную игру (даже если автором все же является не он, все равно спасибо, что когда-то в 2000 году выложил ее у себя на сайте). Жаль, что никакой инструк- ции к игре не было и пришлось разбираться с ней, исходя из кода. Поэтому постарался на будущее описать все особенности Тетриса. Оригинальный TXT документ доступен на сайте: http://mk.bs0dd.net/