| Elektronika MK 85 - Game
4 left
6 right
EXE fire
v 0.95 beta 10.02.2002 Управление - 4,6, сначала можно премещать некоторое время ракетку, запуск мяча - EXE. Программа получилась корявой, слишком много операторов IF. Думаю, что можно ее уменьшить и убыстрить. Но зачем? Арканоид на МК85 довольно убогое зрелище, за мячом следить трудно. Эта программа - урезаная версия более прогрессивнойб которая разрабатывалась сначала,но та совсем сильно глючила и работала очень медленно, поэтому пришлось ее изменить, чтобы хотя бы посмотреть, как это выглядит. Выглядит не очень... Хотя, кто хочет, может поменять. N - размер поля по горизонтали. Больше 20 лучше не вводить, все равно угнаться бесполезно. (с) Сергей Киселев
10 N=20: DEFM N+1: VAC: N=20: S=0: A=1: L=0 15 FOR I=0 TO 6: DRAW N+1,I:NEXT I 20 FOR I=0 TO N: IF RAN#<0.5 THEN 40 30 Z(I)=1:DRAW I,6: L=L+1 40 NEXT I 50 FOR I=0 TO 4: DRAW I,0: NEXT I: C=0: Y=1: X=2 60 FOR I=0 TO 60: GOSUB 260: DRAWC X,Y: X=C+2: DRAW X,Y 70 IF K=4 THEN 80: NEXT I 80 DRAWC X,Y 90 GOTO 90+10*A 100 X=X+1: Y=Y+1: GOTO 140 110 X=X+1: Y=Y-1: GOTO 140 120 X=X-1: Y=Y+1: GOTO 140 130 X=X-1: Y=Y-1 140 IF X<0; X=0: A=A-2 150 IF X>N; X=N: A=A+2 160 IF Y=6; A=A+1 170 IF Y=0 THEN 390 180 DRAW X,Y: IF Y<>5 THEN 190 182 IF A=1; GOSUB 300 185 IF A=3; GOSUB 300 190 IF Y<>1 THEN 250 200 IF C-X>0 THEN 250 202 IF C-X<=-4 THEN 250 205 A=A-1 250 FOR I=0 TO 3: GOSUB 260: NEXT I 255 GOTO 80 260 K=ASCI KEY: IF K=54 THEN 290 270 IF K<>52; RETURN 280 C=C-1:IF C=-1; C=0 285 DRAWC C+4,0: DRAW C,0: RETURN 290 C=C+1: IF C=N-2; C=N-3 295 DRAWC C-1,0: DRAW C+3,0: RETURN 300 IF Z(X)=1 THEN 330 305 IF Z(X-1)=1; IF A=3 THEN 320 307 IF Z(X+1)=0; RETURN 310 IF A=1; A=4: Z(X+1)=0: DRAWC X+1,6: GOTO 340 315 RETURN 320 A=2: Z(X-1)=0: DRAWC X-1,6: GOTO 340 330 A=A+1: Z(X)=0: DRAWC X,6 340 S=S+10: CSR 9,: PRINT S;:IF S=L*10 THEN 370 360 RETURN 370 PRINT " YOU WIN" 380 END 390 PRINT " YOU LOSE"
DOOM - Den (MK 85M)
5 left
- right
9 forward
3 back
EXE fire
DEL exit
(версия 4) играть ТОЛЬКО В РЕЖИМЕ ПОВЫШЕННОГО БЫСТРОДЕЙСТВИЯ (вкл с кн. "+") КОМАНДА VAC ПРИ ВВЕДЕННОЙ ПРОГЕ ЗАПРЕЩАЕТСЯ Упр. DEL - ВЫХОД EXE - ВЫСТРЕЛ 9 - ВПЕРЕД 3 - НАЗАД 5,- - ВЛЕВО,ВПРАВО Надо найти выход (череп на стене) и замочить всех летающих голов Нов. игра - Р1 Прод. старой - Р0 Фаил Р1 - это стряпальщик уровней по RND может быть и другой или составляйте их сами: формат уровня : это комната 7 на 12 окруженная стеной 0 1 2 3 4 5 6 7 8 9 10 11 _________________________ 7 6 5 4 3 2 1 _________________________ U$(0) ... U$(11) т.е. уровень задается перем. U$(0)..U$(11) где 0 - пусто 1 - мертвец 2 - ---- 3 - выход 4 - стена теперь подчеркнутые символы в программе: строка 4 - символ обозначающий движение строка 45 - скорость головы (чем меньше - тем скор. больше) от 0 до 1 строка 52 - кол-во выстрелов для убийства головы Den dsden@yandex.ru
1 CSR0,:PRINT"NEW ?";:N=ASCIKEY:IFN=89THEN100:IFN=78THEN5:GOTO1 2 FOR F=1 TO 11:$="" 3 FOR G=0 TO 6:P=INT(RAN#*5):CSR 3:PRINT CHR G;:IF P<=2;P=0 4 $=$+CHR(P+48):U$(F)=$:NEXT G:NEXT F:Q=99:L=1:N=1:GOTO 50 5 M=SIN O:N=COS O 6 CSR 7:PRINT CHR 20; 7 I=N*3:J=M*3:F=K+I-J:G=L+J+I:FOR H=0 TO 4:GOSUB95:A(H)=P:NEXTH 8I=I-N:J=J-M:F=K+I-J:G=L+J+I:FORH=0TO2:GOSUB95:IFP<>0;A(H*2)=P+5 9 NEXT H:IF A>=8;B=10 10 IF E>=8;D=5 11 IF C>=8;B=C:D=C 12 F=K+N-J:G=L+M+I:FOR H=0 TO 2:GOSUB 95:IF P<>0;A(H*2)=P+10 13 NEXT H:IF A>=13;A=15 14 IF E=13;E=14 15 IF A>=11;IF A<=12;A=8+A 16 IF E>=11;IF E<=12;E=6+E 17 IF C=14;C=16 18 IF C>=13;A=C:B=16:D=B:E=C 19 IF C>=11;IF C<=12;B=6+C:D=8+C 20 CSR0:PRINTCHR127;:FORH=0TO4:LETCZ$(7+A(H)):PRINTCHR96;:NEXTH 22 PRINT CHR 127;:IF INT Q <10; PRINT " "; 23 PRINT INT Q;"%";:$=KEY:IF $="-";O=O-90:GOTO 5 24 IF $="5";O=O+90:GOTO 5 26 IF $="9";IF C<=11;K=K+N:L=L+M:GOTO 6 27 IF $="3";F=K-N:G=L-M:GOSUB 96:IF P<=2;K=F:L=G:GOTO 6 30 IF $<>CHR 4 THEN 40:IF C=13 THEN 2 31 CSR 2:PRINT CHR 127;CHR 127;CHR 127; 32 IF FRAC((C+3)/5)<>0 THEN 20:T=T-1 34 IF T<=0;$=U$(R):U$(R)=MID(1,S-1)+"1"+MID(S+1,7-S):GOTO 50 40 IF T<=0 THEN 50:IF ABS(R-K)<=1;IF ABS(S-L)<=1;Q=Q-1:IF Q<=0;END 43 IF $=CHR 8;END 45 IF RAN#<=.8 THEN 20:F=R+SGN(K-R):G=S+SGN(L-S):GOSUB 96 46 IF K=F;IF L=G THEN 20 48 IF P<=2;R=F:S=G:GOTO 7 49 GOTO 20 50 F=INT(RAN#*9):G=INT(RAN#*7)+1:GOSUB 96:IF P>=3 THEN 50 52 T=2:R=F:S=G:GOTO 7 95 F=F+M:G=G-N 96 IF F<=11;IF F>=0;IF G>=1;IF G<=7 THEN 98 97 P=4:RETURN 98 IF R=F;IF S=G;P=2:RETURN 99 P=VAL GETC(U$(F),G):RETURN 100 DEFM 27:VAC:CSR 0,:U$="0000000" 107 Z$(7)="000V" 108 Z$(8)="0006E" 109 Z$(9)="00VEE" 110 Z$(10)="0LEL" 111 Z$(11)="0LAL" 112 Z$(12)="03O3O3" 113 Z$(13)="006EPV" 114 Z$(14)="0ERLHE" 115 Z$(15)="0LEVEL" 116 Z$(16)="0LALAL" 117 Z$(17)="0O3O3O" 118 Z$(18)="0FG3P34" 119 Z$(19)="0R0VLHE" 120 Z$(20)="EHHRLAE" 121 Z$(21)="3O3O3O3" 122 Z$(22)="O3O3O3O" 223 Z$(23)="OO33OO3" 224 Z$(24)="0C8F8IK" 225 Z$(25)="1ITD521" 226 Z$(26)="0G973A5" 227 Z$(27)="G9NMK8G" 300 GOTO 2
GORODKI - Кочмурадов Андрей
2 up
. down
EXE fire
Аналогичная игра была на «SPECTRUM», но не столь убогая, конечно. Играть ес-но на «TURBO». Просит ввести скорость вращения биты. Чем больше введенное число, тем меньше скорость, максимальная скорость при 0. Управление: «2» - бита вверх; «.» - бита вниз; «EXE» - бросить биту. Другие кнопки нажимать нельзя, т.к. управление передается по вычисляемому, на основе ASCI KEY, адресу. Игра и так не сильно шустрит, если добавить проверку нажатия допустимых клавиш – затормозит еще больше.
1VAC:B$="CROQUET":FORX=1TO32:A=RAN#*7+1:CSRA+1:PRINTGETC(B$,A); 2 NEXT X: FOR X=1 TO 28:A=RAN#*7+1:CSR A+1:PRINT" "; 3 $=$+"1":NEXT X:CSR 0,:INPUT "SPEED",B:PRINT CHR 127; 4FORI=1TO28:IFGETC($,I)<>"1";NEXTI:PRINT"WT:";INT(1E5/M/U):END 5 S=57:V=0 6 FOR K=0 TO 3:X=SGN K:Y=SGN (K-2):L=H-Y:F=S-X:CSR,:FOR Z=1 TO 3 7 DRAW F,L:IF F<4;IF F>=0;IF L>=0;IF L<7 THEN 99 8 L=L+Y:F=F+X:NEXT Z:FOR A=1 TO B:IF V=0 THEN 9+ASCI KEY 9 NEXT A:U=U+1:S=S-V:NEXT K:IF S<0 THEN 4:GOTO 6 13 V=3:M=M+1:GOTO 9 55 H=H-1:GOTO 9 59 H=H+1:GOTO 9 99 R=7*F+L:$=MID(1,R)+CHR 1+MID (R+2,27-R):DRAWC F,L:GOTO 8
KARATE - Александр Шлепнёв
O left
P right
X kick
Надо забить как можно больше противников. Упраление влево - O, вправо - P, удар - X Удар попадает в противника, когда он находится в соседнем знакоместе. взята с сайта http://shleps.narod.ru/
1 CSR 0,:PRINT "KARATE":VAC 2 INPUT "NINJA>",E:INPUT "ME>",W 3 K=E 5 X=5:LETC"04FC4AI":CSR X:PRINT CHR 96; 8 F=INT(RAN#*3)+1 10 H=INT(RAN#*12) 20 IF RAN#>0.25;H=H-SGN(X-H) 28 IF H>11;H=11 29 IF H<0;H=0 30 S$=KEY:IF S$="P";CSR X:PRINT" ";:X=X+1:P=1 40 IF S$="O";CSR X:PRINT" ";:X=X-1:P=0 50 IF P=1;LETC"04FC4AI":CSR X:PRINT CHR 96; 60 IF P=0;LETC"04U64A9":CSR X:PRINT CHR 96; 70 IF S$="X" THEN 100 80 IFH>X+1;CSRH:PRINT" ";:H=H-1:CSRH:LETC"04U64A0":PRINTCHR96; 90 IFH<X-1;CSRH:PRINT" ";:H=H+1:CSRH:LETC"04FC4A0":PRINTCHR96; 95 IFABS(X-H)<=1;W=W-F:IFW<=0THEN998:LETC"4V4EH":CSRH:PRINTCHR96; 99 GOTO 20 100 IFP=1;LETC"4FC78":CSR X:PRINT CHR96;:IFH-X<=2;IF H-X>=0;E=E-1 103 IFP=0;LETC"4U6S2":CSR X:PRINT CHR96;:IFX-H<=2;IF X-H>=0;E=E-1 104 IFE<=1;PRINT" ";:E=K+3:W=W+3:Z=Z+1:GOTO8 105 GOTO 80 998 CSR 0,:PRINT "GAME OVER";:FOR Z=0 TO 99:NEXT Z 999 CSR 0,:PRINT "P:";Z;:FOR Z=0 TO 99:NEXT Z:GOTO 1
KOSMOS - А. Колегов
- up
+ down
EXE fire
А.КОЛЕГОВ, 614025, г.Пермь, ул.Косьвинская, 13-43. Предлагаю на конкурс свою программу "Космос" для микрокомпьютера МК 85. Программа работает в режиме повышенного быстродействия. Задача игры — уничтожить как можно больше метеоритов. Управление кораблем производится тремя клавишами: "Z"— выстрел, "-" — вверх, "+" — вниз. Максимальный уровень игры — восьмой. По окончании игры отображается число уничтоженных метеоритов. Программа занимает 616 ячеек памяти. "Радиолюбитель" №4 1993г.
5 CSR 11 ,:PRINT "KOSMOS" 10 VAC:R=3:V=9 20 INPUT "Level(1-5)",A 40 IF T=90;IF S=0;S=1:V=R:Y=0 50 IF T=43;DRAWC 1 ,R:R=R-1:DRAWC 0,R+2 60 IF T=45;DRAWC 1 ,R:R=R+1:DRAWC 0,R-2 70 IF R>6;R=6 80 IF R<0;R=0 90 DRAW 0,R:DRAW 1,R:DRAW 0,R+1 :DRAW 0,R-1 100 IF S=1;DRAWC Y, V:Y=Y+1:DRAW Y,V 110 IF Y=15;S=0:DRAWC Y,V:V=7 120 FOR Z=1 TO A 125 IF RND(A(Z),-1)<0;I(Z)=INT(6*RAN#):A(Z)=15+(15*RAN#) 130 IF RND(A(Z),-1)=Y;IF I(Z)=V;GOSUB 300 140 DRAWC A(Z),I(Z):A(Z)=A(Z)-1:DRAW A(Z),I(Z) 145 IF RND(A(Z),-1)=Y;IF I(Z)=V;GOSUB 300 150 IF RND(A(Z),-1)=1;IF I(Z)=R THEN 180 160 IF RND(A(Z),-1)=0;IF I(Z)>=R-1;IF I(Z)<=R+1 THEN 180 170 NEXT Z:T=ASCI KEY:GOTO 40 180 CSR 11,:PRINT "Score=>";W;:FOR V=0 TO 500:NEXT V 190 INPUT "Exit (Y/N)",Z$:IF Z$="N" THEN 5 200 END 300 DRAWC Y,V:DRAW Y+1 ,V+1 :DRAW Y-1 ,V+1 :DRAW Y-1,V-1 305 DRAW Y+1, V-1:FOR Q=0 TO 100:NEXT Q: A(Z)=-1: DRAWC Y+1, V+1 310 DRAWC Y-1,V+1:DRAWC Y-1,V-1:DRAWC Y+1,V-1 320 I(Z)=10:W=W+1:S=0:Y=0:RETURN
RALLI-2 - Александр Шлепнёв
4 left
6 right
Q accelerate
Z brake
Надо проехать как можно больше на имеющемся запасе горючего, не врезаясь в препятствия. Управление - газ, тормоз, вправо, влево. Горючее расходуется при разгоне взята с сайта http://shleps.narod.ru/
1 VAC:PRINT"RALLI-2":GOSUB 100:X=27:R=700 2 FOR Z=0 TO 6:DRAW 24,Z:DRAW 30,Z: A(Z)=-1:NEXT Z 3 M=M-0.5:S$=KEY:IF S$="4";DRAWC X,1:X=X-1:IF X<25;X=25 4 IF S$="6";DRAWC X,1:X=X+1:IF X>29;X=29 5 DRAW X,1:IF S$="Q";IF M>0;R=0.6*R:M=M-1.5 6 IF S$="Z";R=1.5*R 7 P=P+1:CSR 0:PRINT P;:IF P=L THEN 50:IF M<0;M=0 8 CSR 7: PRINT RND(M,-1);" ";:A=INT(RAN#*5)+25:IF M<=0;R=1.3*R 9 FOR Z=6 TO 1 STEP -1:DRAWC A(Z),6-Z:A(Z)=A(Z-1):DRAW A(Z),6-Z:NEXT Z 10 IF F=X;Q=Q+1:CSR 5:PRINT"#";:FOR Z=0 TO R:NEXT Z:CSR 5:PRINT" "; 11 FOR Z=0 TO R:NEXT Z:S$="":GOTO 3 50 PRINT "FINISH",Q:GOTO 1 100 INPUT "FUEL",M:IF M>99 THEN 100 110 INPUT "MILES",L:IF L>99 THEN 110 110 RETURN
SAG - Сергей Киселев
4 left
6 right
8 up
2 down
Прошу меня не обвинять в отсутствии стиля и замороченности, хотя можно и проще было сделать. Я тогда был еще маленьким мальчиком, и такую игру написал для БК 0010 (был у меня такой комп). А потом кто-то мне принес МК, и я написал несколько вещей для него. Коряво, конечно, но работало. Кое-что потерялось, когда батарейки сел, и я ничего не записал. Думаю, эту прогу немножко надо пределать. Может, руки дойдут. (Вот, начало сессии закончим отмечать :-) Игру лучше запускать в "+" Смысл - за определенное время съесть "своей точкой" (на БК это был человечек, нарисованный в заставке) другую точку. Надо пройти 10 этапов если этап не пройден, попадаете в прошлый. 2.0 mod - что это дает: управление такое же, как в v 1.0 - много раз нажимать на клаву (c) Сергей Киселев
10 LETC "EEVLAHH": PRINT " SAG "; CHR 96: L=0 20 X=0: Y=0: PRINT "LEVEL",L: C=0 30 S=INT(RAN#*45): H=INT(RAN#*6):DRAW S,H 40 FOR B=0 TO 6: FOR A=59 TO 46 STEP -0.5 50 DRAW A,B: DRAW X,Y: D=X: E=Y 60 C=ASCIKEY: IF C=0 THEN 130 70 IF C=50; Y=Y-1: IF Y=-1; Y=0 80 IF C=52; X=X-1: IF X=-1; X=0 90 IF C=54; X=X+1: IF X=46; X=45 100 IF C=56; Y=Y+1: IF Y=7; Y=6 110 DRAWC D,E 120 IF X=S; IF Y=H THEN 170 130 NEXT A: NEXT B 140 L=L-1:IF L>0 THEN 20 150 PRINT "YOU LOSE!" 160 END 170 L=L+1:IF L<11 THEN 20 180 PRINT "YOU WIN!"
SNAKE - Сергей Киселев
4 left
6 right
8 up
2 down
Игра "Змейка" ТОЛЬКО для МК85М Управление осуществляется клавишами 2,8,4,6 - соответственно, направление движения. Нельзя ударятся о край (по "кромке" ползать можно) и есть самого себя. Лучше работать в "+" Программа только для МК85М, или для МК85 с ОЗУ не менее 6 кб, т.к. использует 420 ячеек памяти. Сначала немножко тупит, поскольку очищает все ячейки, иначе будут ошибки. А еще у меня при запуске другой программы эта стала глючить - некоторые строки пропадают, так что по ходу лучше ее на "пустой" комп загружать. Version 1.0 5.02.2002 Управление осуществляется клавишами 2,8,4,6 - соответственно, направление движения. Нельзя ударятся о край (по "кромке" ползать можно) и есть самого себя. Лучше работать в "+" (без него она вАще не ползает :-) ) Программа только для МК85М, или для МК85 с ОЗУ не менее 6 кб, т.к. использует 420 ячеек памяти (3360 шагов). Сначала немножко тупит, поскольку очищает все ячейки, иначе будут ошибки. А еще у меня при запуске другой программы эта стала глючить - некоторые строки пропадают, так что по ходу лучше ее на "пустой" комп загружать. Version 1.2 6.02.2002 - убрана тупизна в начале, программа теперь запускается мгновенно - добавлена возможность повтора игры - змейка ползает шустрее, т.к. условные операторы IF заменены на без- условные GOTO, которые работают быстрее. - программа стала меньше занимать, теперь ее размер - 510 шагов Version 1.25 7.02.2002 изменить строку 120 и добавить 125: 120 B=ASCIKEY: IF B=0 THEN 155 125 IF B=50; IF A=\2; A=4 НЕ ПРОВЕРЯЛ НА МК, но должно работать на 20% быстрее Насчет работы игры на МК85: единственное, что можно сделать - уменьшить программу за счет описательных строк (1, 500-520) и уменьшить поле до 12-13 точек по горизонтали (по вертикали уменьшать бесполезно, и так негде развернуться), изменив константы в программе. Тем самым можно поменять количество шагов памяти, которое требуется. Их необходимо по числу клеток х 8. Например, программа занимает 490 шагов (не проверял, не знаю), 1221-490=731 шагов 731/8=91 клетка. При высоте 7 клеток ширина поля будет 91/7=13. Значит пишем DEFM 91 и изменяем 59 на 12, 60 на 13 во всех строках. Я попытался написать драйвер для использования текстовых массивов (т.е. брать по 7 значений на один элемент массива), но он во-первых очень медленным оказался, а во-вторых сильно глючал (через 5-6 шагов змеи выдавал ошибку), и исправлять его не посчитал нужным. А идея было хорошая - всего 60 элементов массива с лихвой хватало для МК85. Наверное, существует совсем другой алгоритм (а может, так они и все устроены, 420 байт сейчас даже для телефона пустяк) Змейки, который работает во всех приставках, компах, телефонах и т.д. Но я до него что-то не могу допереть. Если есть описание для других компов, вышлите, пожалуйста. (c) Сергей Киселев
1 PRINT "SNAKE": DEFM 43 10 VAC: FOR B=0 TO 59: J$(B)="EEEEEEE": NEXT B 12 G=-1: A=65: C=26: D=3: H=30: I=3 20 FOR B=C TO H: DRAW B,3: J$(B)="EEEAEEE": NEXT B 30 G=G+1 40 E=INT(RAN#*59): F=INT(RAN#*6): IF GETC(J$(E),F+1)<>"E" THEN 40 50 DRAW E,F 60 GOTO A 65 H=H+1: IF H=60 THEN 500: GOTO 100 66 I=I+1: IF I=7 THEN 500: GOTO 100 67 H=H-1: IF H=-1 THEN 500: GOTO 100 68 I=I-1: IF I=-1 THEN 500 100 IF GETC(J$(H),I+1)<>"E" THEN 500 110 DRAW H,I 120 B=ASCI KEY: IF B=0 THEN 155 125 IF B=50; IF A<>66; A=68 130 IF B=54; IF A<>67; A=65 140 IF B=56; IF A<>68; A=66 150 IF B=52; IF A<>65; A=67 155 $=J$(H):J$(H)=MID(1,I)+CHRA+MID(I+2,6-I) 160 IF H=E; IF I=F THEN 30 165 DRAWC C,D: B=ASCI GETC(J$(C),D+1): $=J$(C) 170 J$(C)=MID(1,D)+"E"+MID(D+2,6-D): GOTO 200+B 265 C=C+1: GOTO A 266 D=D+1: GOTO A 267 C=C-1: GOTO A 268 D=D-1: GOTO A 500 PRINT "Game over. score-";G 510 INPUT "Repeat",$:IF $="Y" THEN 10 520 DEFM 0
TETRIS - ~fiks (MK 85M)
W up
X down
S rotate
A drop
1 DEFM 24:VAC:G=1111111:GOSUB 200: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 C<B+1;C=B+1 10 C=C-1:RETURN 11 IF C<B+2;C=B+2 12 C=C-2:RETURN 13 GOSUB 2:GOTO 16 15 F=1 16 FOR C=24 TO 0 STEP -1:IF G(C)=0;NEXT C 17 IF FRAC(INT(G(C)/10^E)/10^F)=0;GOSUB 10:GOTO 17 18 RETURN 50 A=INT(RAN#*15+1):GOSUB 98:FOR B=10 TO 5 STEP -1 55 FOR C=1 TO 25:CSR B,:LETC$:PRINT CHR 96;:D=ASCI KEY:IF D=83;GOSUB 98 60 IF D=87;IF MID(1,1)="0";$=$+"0":$=MID(2,7):GOSUB 3 65 IF D=88;IF MID(7,1)="0";$="0"+$:$=MID(1,7):GOSUB 2 70 IF D=65 THEN 72:NEXT C:NEXT B 72 Z(8)=Z(9) 73 IF Z(8)>390;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)=ASCI GETC(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 200 Z$(10)=CHR154+CHR185+CHR169+CHR75+CHR87+CHR184+CHR184 210 Z$(11)=CHR168+CHR37+CHR184+CHR184+CHR184+CHR184+CHR184 220 Z$(12)=CHR183+CHR154+CHR139+CHR38+CHR25+CHR83+CHR187 230 Z$(13)=CHR183+CHR154+CHR26+CHR169+CHR37+CHR26+CHR188 240 Z$(14)=CHR158+CHR88+CHR188+CHR184+CHR184+CHR184+CHR184 250 Z$(15)=CHR168+CHR184+CHR184+CHR184+CHR184+CHR184+CHR184 260 Z$(16)=CHR168+CHR168+CHR184+CHR184+CHR184+CHR184+CHR184 270 Z$(17)=CHR185+CHR164+CHR33+CHR159+CHR22+CHR58+CHR38 280 Z$(18)=CHR183+CHR154+CHR182+CHR169+CHR38+CHR25+CHR87 290 Z$(19)=CHR154+CHR183+CHR169+CHR28+CHR58+CHR37+CHR184 300 Z$(20)=CHR53+CHR164+CHR182+CHR159+CHR35+CHR82+CHR188 310 Z$(21)=CHR168+CHR33+CHR187+CHR184+CHR184+CHR184+CHR184 320 Z$(22)=CHR183+CHR154+CHR182+CHR163+CHR118+CHR82+CHR58 330 Z$(23)=CHR154+CHR186+CHR169+CHR76+CHR188+CHR184+CHR184 340 Z$(24)=CHR168+CHR78+CHR184+CHR184+CHR184+CHR184+CHR184 350 RETURN
UFO-3 - Александр Шлепнёв
Q up
Z down
EXE fire
Игра UFO-3 Написана под впчатлением игрушки UFO для УК-НЦ. Задача - сбить как можно больше вражеских самолетов при этом не врезавшись ни в них, ни в "кирпичи". Можно маневрировать вверх и вниз, а также стрелять (кажется кнопкой EXE) взята с сайта http://shleps.narod.ru/
1 PRINT "UFO-3":VAC:LETC"0000IVS":Y=1 2 INPUT"R",V:IF V>6 THEN 2:PRINT CHR 96; 3 B(V)=INT(RAN#*5)+1:Z=0 4 Z=Z+1 5 A(Z)=B(Z):GOTO 199 6 CSR Z:PRINT M$; 7 IF Z<V THEN 4:A=B:X=X+1 8 S$=KEY:IF S$="Q";Y=Y+1:IF Y=4;Y=3 9 IF S$="Z";Y=Y-1:IF Y=0;Y=1 10 IF ASCI S$=4 THEN 100:IF Y=A-3 THEN 9998:IF A=Y THEN 9998 11 IF Y=1;LETC"0000IVS" 12 IF Y=2;LETC"00IVS" 13 IF Y=3;LETC"IVS" 14 CSR 0:PRINT CHR 96; 15 GOTO 3 100 FOR Z=1 TO V:IF Y=A(Z) THEN 105:W=2*Y-1 101 NEXT Z:FOR Z=7 TO 59:DRAW Z+3,W:DRAWC Z,W:NEXT Z 102 GOTO 3 105 FOR Q=11 TO 5*Z+4:DRAW Q,W:DRAWC Q-4,W:NEXT Q:N=N+1 106 A(Z)=0:GOTO 3 199 IF A(Z)=0;M$=" ":GOTO 6 200 IF A(Z)=1;LETC"00002E" 201 IF A(Z)=2;LETC"002E" 202 IF A(Z)=3;LETC"2E" 203 IF A(Z)=4;LETC"0000EE" 204 IF A(Z)=5;LETC"00EE" 205 IF A(Z)=6;LETC"EE" 207 M$=CHR 96:GOTO 6 9998 CSR 0,:PRINT"GAME OVER " 9999 CSR 0,:PRINT"R:";N;" ";"M:";X
TETRIS by joint831 - Андрей Никулин
8 up
2 down
5 rotate
6 drop
P0
10 VAC:DEFM 14:FOR A=0 TO 19:U$(A)="0000000":NEXT A 20 S=10:A=0:B=3:C=-1:D=1:F=0:G=0:GOSUB 200+INT(7*RAN#) 30 A=A+1:IF A<22;Q=0:GOSUB #2:GOTO 90 40 IF A+C<40;IF A+D<40;IF A+E<40 THEN 50 45 GOTO #1 50 Q=3:GOSUB #2:B=B+1:A=A-20 60 $=GETC(U$(A),B):FOR Q=0 TO 2 70 $=$+GETC(U$(A+C(Q)),B+F(Q)):NEXT Q:IF $<>"0000" THEN #1 80 B=B-1:A=A+20 90 DRAWC J,N:DRAWC K,O:DRAWC L,P:DRAWC I,M:DRAW J=A+C,N=B+F 100 DRAW K=A+D,O=B+G:DRAW L=A+E,P=B+H:DRAW I=A,M=B 110 GOTO 30 200 E=C:H=1:RETURN 201 E=0:H=1:RETURN 202 E=C:H=E:RETURN 203 E=0:H=1:D=1:G=1:RETURN 204 E=0:H=C:D=1:G=C:RETURN 205 E=2:H=0:RETURN 206 E=0:H=C:C=1:F=-1:RETURN
P1
20 $=U$(I-20)+"0":U$(I-20)=MID(1,M)+"1"+MID(M+2,6-M) 30 FOR Q=0 TO 2:$=U$(J(Q)-20)+"0" 40 U$(J(Q)-20)=MID(1,N(Q))+"1"+MID(2+N(Q),6-N(Q)):NEXT Q 60 FOR Q=0 TO 3 70 A=I(Q)-20:IF U$(A)<>"1111111" THEN 120:FOR A TO 1 STEP -1 80 U$(A)=U$(A-1):IF A<18;IF U$(A+1)="0000000";A=1 90 FOR B=1 TO 7:IF GETC(U$(A),B)="1";DRAW A+20,B-1:GOTO 110 100 DRAWC A+20,B-1 110 NEXT B:NEXT A:U$(0)="0000000":T=T+1:CSR 8:PRINT T; 120 NEXT Q:J=0:K=0:L=0:I=0:GOTO #0,20
P2
5 FOR Q=0 TO S:$=KEY:IF $<>"" THEN 10:NEXT Q:RETURN 10 IF $<>"5" THEN 60:FOR Q=0 TO 2:IF ABS C(Q)=1;IF ABS F(Q)=1 THEN 30 20 R=-F(Q):F(Q)=C(Q):C(Q)=R:GOTO 50 30 IF C(Q)-F(Q)=0;C(Q)=-C(Q):GOTO 50 40 F(Q)=-F(Q) 50 NEXT Q 60 IF $="8";B=B+1 65 IF $="6";S=1 70 IF $="2";B=B-1 80 IF B+F<7;IF B+G<7;IF B+H<7 THEN 100 90 B=B-1:GOTO 80 100 IF B+F>=0;IF B+G>=0;IF B+H>=0;RETURN 110 B=B+1:GOTO 100
SCWOSH! - А. Устинов
Q left
P right
1 VAC:LETC "0ENJPE0":GOSUB 21:GOTO 3 2 U=Y:C=X:IF $="Q" THEN 9 3 X=X+A:IF X>5;A=-1 4 Y=Y+B:IF Y>43;B=-2 5 IF Y<17;B=2 6 IF X<2;GOSUB 16 7 DRAW Y,X:DRAWC U,C 8 $=KEY 9 IF $="Q";IF G>3;CSR G:PRINT " ";:G=G-1:CSR G:PRINT "_"; 10 IF $="P";IF G<8;CSR G:PRINT " ";:G=G+1:CSR G:PRINT "_"; 11 S=S+1:IF S=200;M=3:W=-1:CSR 10:PRINT 2;:GOSUB 17 12 IF S=600;M=0:W=-1:CSR 10:PRINT 3;:GOSUB 17 13 IF S=1000;PRINT "GOOD JOB!":W=9:GOSUB 17 14 $=KEY:IF $="P" THEN 10 15 FOR H=0 TO M:NEXT H:GOTO 2 16 IF G=INT (Y/5);A=1:RETURN 17 W=W+1:CSR 0:PRINT W; 18 IF W=10;PRINT "SCORE:";:PRINT S:GOTO 1 19 A=1:RETURN 21 S=0:M=8:A=1:B=2:X=0:Y=30:G=6 22 CSR 11:PRINT " PROGRAMMED BY USTINOV A. C1993"; 24 FOR J=1 TO 11:CSR J-1:PRINT " ";:CSR J:PRINT CHR 96; 25 FOR L=1 TO 10:NEXT L:NEXT J 26PRINT"SCWOSH!";:PRINT CHR 96;:PRINT " ":PRINT " $ $ "; 27 CSR 0:PRINT W;:CSR 10:PRINT 1;:RETURN
Comments
Post a Comment