| Elektronika MK 85 - Game


ARCANOID - Сергей Киселев
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

Popular Posts