D O O M (версия 4) играть ТОЛЬКО В РЕЖИМЕ ПОВЫШЕННОГО БЫСТРОДЕЙСТВИЯ (вкл с кн. "+") КОМАНДА VAC ПРИ ВВЕДЕННОЙ ПРОГЕ ЗАПРЕЩАЕТСЯ Упр. DEL - ВЫХОД EXE - ВЫСТРЕЛ 9 - ВПЕРЕД 3 - НАЗАД 5,- - ВЛЕВО,ВПРАВО Надо найти выход (череп на стене) и замочить всех летающих голов Нов. игра - Р1 Прод. старой - Р0 При набивании листинга проги использованы сокращения (ввиду их отсутствия на станд. клаве компа) <= в МК85 это один символ >= в МК85 это один символ # не равно(в строках 6,10,30,32) надеюсь куда ставить # а куда "не равно" разберешся | сплошной черный квадрат(как курсор который появляется при переполнении строки) строки обозначенные !!! надо вводить без пробелов между операторами иначе не влезут. подчеркнутые символы в строках объеснены ниже Файл Р0 3 M=SIN O:N=COS O 4 CSR 7:PRINT CHR 1; ----- !!! 5 I=N*3:J=M*3:F=K+I-J:G=L+J+I:FOR H=0 TO 4:GOSUB 95:A(H)=P:NEXT H !!! 6 I=I-N:J=J-M:F=K+i-J:G=L+J+I:FOR H=0 TO 2:GOSUB 95:IF P#0;A(H*2)=P+5 7 NEXT H:IF A>=8;B=10 8 IF E>=8;D=5 9 IF C>=8;B=C:D=C 10 F=K+N-J:G=L+M+I:FOR H=0 TO 2:GOSUB 95:IF P#0;A(H*2)=P+10 11 NEXT H:IF A>=13;A=15 12 IF E=13;E=14 13 IF A>=11;IF A<=12;A=8+A 14 IF E>=11;IF E<=12;E=6+E 16 IF C=14;C=16 17 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 CSR 0:PRINT "|";:FOR H=0 TO 4:LETC Z$(7+A(H)):PRINT CHR 96;:NEXT H 22 PRINT "|";INT Q;"%";:$=KEY:IF $="-";O=O-90:GOTO 3 24 IF $="5";O=O+90:GOTO 3 26 IF $="9";IF C<=11;K=K+N:L=L+M:GOTO 4 27 IF $="3";F=K-N:G=L-M:GOSUB 96:IF P<=2;K=F:L=G:GOTO 4 !!! 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 5 30 IF $#CHR 4 THEN 40:IF C=13 THEN #1:CSR 2:PRINT"|||"; 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 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 5 - 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 GETS(U$(F),G):RETURN Файл P1 3 DEFM 6:VAC:DEFM 27:U$="0000000":FOR F=1 TO 11:$="" !!! 5 FOR G=1 TO 7:P=INT(RAN# *5):CSR 3:PRINT CHR G;:IF P<=2;P=0 !!! 7 $=$+CHR(P+48):U$(F)=$:NEXT G:NEXT F:Q=99:L=1:N=1:GOTO#0,50 Выйти из реж. прогр. Ввести DEFM 27 набрать след. регистры (ВНИМАТЕЛЬНО НЕ ПУТАТЬ 0 И O) Z$(7)="000V" Z$(8)="0006E" Z$(9)="00VEE" Z$(10)="0LEL" Z$(11)="0LAL" Z$(12)="03O3O3" Z$(13)="006EPV" Z$(14)="0ERLHE" Z$(15)="0LEVEL" Z$(16)="0LALAL" Z$(17)="0O3O3O" Z$(18)="0FG3P34" Z$(19)="0R0VLHE" Z$(20)="EHHRLAE" Z$(21)="3O3O3O3" Z$(22)="O3O3O3O" Z$(23)="OO33OO3" Z$(24)="0C8F8IK" Z$(25)="1ITD521" Z$(26)="0G973A5" Z$(27)="G9NMK8G" Фаил Р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 - кол-во выстрелов для убийства головы