10 REM ZOMBIE MAZE
20 DEFINT A-Z 30 SC=0:HS=0 40 MODE 0 50 DEF FNSCR(X,Y)=TEST(32*X-20,408-16*Y) 60 ENV 1,1,120,7,24,-5,14 70 X=2:Y=2:PC=249 80 K$="" 90 MC=254 100 A(1)=19:B(1)=2:A(2)=2:B(2)=23 110 A(3)=9:B(3)=10:A(4)=19:B(4)=23 120 NUM=1 130 GOSUB 650 140 SOUND &81,0 150 SOUND &82,0 160 SQ(1) GOSUB 790 170 EVERY 10,0 GOSUB 410 180 EVERY 9,1 GOSUB 520 190 FLAG=0 200 REM MAIN LOOP 210 SC=SC+1:IF SC>HS THEN HS=SC 220 DI 230 LOCATE 1,25 240 PEN 8 250 PRINT "SCORE :"; 260 PRINT USING "######";SC; 270 EI 280 IF FLAG=0 THEN GOTO 200 290 SOUND &C1,0 300 SOUND &C2,0 310 DI 320 Z=REMAIN(0):Z=REMAIN(1) 330 LOCATE 7,10:PEN 7:PRINT "GAME END" 340 FOR Z=1 TO 400:INK 7,INT(RND(1)*24):NEXT Z:INK 7,13 350 FOR Z=1 TO 300:NEXT Z 360 IF SC=HS THEN GOSUB 860 370 A$=INKEY$:IF A$=" " THEN GOTO 370 380 A$=INKEY$:IF A$<>" " THEN GOTO 380 390 EI 400 SC=0:GOTO 40 410 REM PLAYER ROUTINE 420 IF INKEY(28)=0 THEN CY=-1 430 IF INKEY(63)=0 THEN CX=1 440 IF INKEY(30)=0 THEN CY=1 450 IF INKEY(71)=0 THEN CX=-1 460 DI 470 TX=X+CX:TY=Y+CY:CX=0:CY=0 480 COL=FNSCR(TX,TY):IF COL=5 THEN LOCATE X,Y:PRINT " ";:X=TX:Y=TY:GOTO 490 490 PC=497-PC:LOCATE X,Y:PRINT CHR$(PC); 500 EI 510 RETURN 520 REM MONSTER ROUTINE 530 NUM=NUM+1:IF NUM=5 THEN NUM=1:MC=509-MC 540 TRY=0 550 CA=SGN(X-A(NUM)):CB=SGN(Y-B(NUM)) 560 TA=A(NUM)+CA:TB=B(NUM)+CB 570 COL=FNSCR(TA,TB):IF COL=5 THEN LOCATE A(NUM),B(NUM):PRINT " ";:A(NUM)=TA:B(NUM)=TB:GOTO 620 580 IF COL=3 THEN FLAG=-1:RETURN 590 TRY=TRY+1:IF TRY=3 THEN GOTO 620 600 CA=SGN(INT(RND*3)-1):CB=SGN(INT(RND*3)-1) 610 GOTO 560 620 MC=509-MC:LOCATE A(NUM),B(NUM) 630 DI:PEN 11:PRINT CHR$(MC);:PEN 3 640 RETURN 650 REM DRAW THE MAZE 660 SYMBOL 240,&CC,&33,&CC,&33,&CC,&33,&CC,&33 670 MODE 0:PAPER 5:PEN 12 680 BORDER 6 690 RESTORE 980 700 FOR L=1 TO 24 710 READ L$ 720 FOR M=1 TO 20 730 D=VAL(MID$(L$,M,1)) 740 IF D=1 THEN PRINT CHR$(240); ELSE PRINT " "; 750 NEXT M 760 NEXT L 770 RESTORE 780 RETURN 790 REM PLAY NEXT NOTE OF TUNE 800 READ NOTE 810 IF NOTE=-1 THEN RESTORE:GOTO 800 820 SOUND &11,NOTE,50,0,1,0,0 830 SOUND &A,NOTE*0.69,50,0,1,0,0 840 SQ(1) GOSUB 790 850 RETURN 860 REM GOT HIGH SCORE 870 PEN 8 880 LOCATE 6,14:PRINT "HIGH SCORE" 890 FOR Z=1 TO 200 STEP 5:INK 8,INT(RND(1)*24) 900 SOUND &83,ABS(500-Z*5),15 910 NEXT Z 920 RETURN 930 REM TUNE DATA 940 DATA 478,379,319,379 950 DATA 358,284,239,284 960 DATA 319,379,319,358,379,426,478,239 970 DATA -1 980 DATA "11111111111111111111" 990 DATA "10000001000010000001" 1000 DATA "10111100011000111101" 1010 DATA "10100101000010100101" 1020 DATA "10110001100110001101" 1030 DATA "10100100100100100101" 1040 DATA "10101101100110110101" 1050 DATA "10000101000010100001" 1060 DATA "11010001011010001011" 1070 DATA "10011111011011111001" 1080 DATA "10000010011001000001" 1090 DATA "10111000111100011101" 1100 DATA "10000010011001000001" 1110 DATA "10000000000000000001" 1120 DATA "10111010100101011101" 1130 DATA "10000010000001000001" 1140 DATA "11001110100101110011" 1150 DATA "10001010100101010001" 1160 DATA "10111011100111011101" 1170 DATA "10010001000010001001" 1180 DATA "11010101011010101011" 1190 DATA "10010101011010101001" 1200 DATA "10000100011000100001" 1210 DATA "11111111111111111111" |