180 lines
3.7 KiB
QBasic
180 lines
3.7 KiB
QBasic
100 CALL CLEAR
|
|
110 PRINT TAB(6);"**************"
|
|
120 PRINT TAB(6);"* SUPERCHASE *"
|
|
130 PRINT TAB(6);"**************"
|
|
140 CALL CHAR(96,"00183C7E7E3C18")
|
|
150 CALL COLOR(9,14,12)
|
|
160 PRINT : : : :"USE THE ARROW KEYS TO MOVE."
|
|
170 PRINT : :"TRY TO GATHER AS MANY"
|
|
180 PRINT :"TREASURES (`) IN THE MAZE"
|
|
190 PRINT :"AS POSSIBLE BEFORE THE"
|
|
200 PRINT :"ENEMY CATCHES YOU!"
|
|
210 CALL COLOR(10,5,5)
|
|
220 CALL COLOR(11,12,12)
|
|
230 CALL CHAR(120,"383810FE10387CFE")
|
|
240 CALL COLOR(12,7,12)
|
|
250 CALL CHAR(128,"383810FE10387CFE")
|
|
260 CALL COLOR(13,16,12)
|
|
270 PRINT : : :"PRESS ANY KEY TO BEGIN";
|
|
280 CALL KEY(0,K,S)
|
|
290 IF S<1 THEN 280
|
|
300 SC=0
|
|
310 LV=1
|
|
320 CALL CLEAR
|
|
330 CALL SCREEN(4)
|
|
340 FOR X=3 TO 21
|
|
350 CALL HCHAR(X,3,104,27)
|
|
360 NEXT X
|
|
370 RANDOMIZE
|
|
380 FOR I=1 TO 65
|
|
390 X=2*(INT(9*RND))+4
|
|
400 Y=2*(INT(11*RND))+4
|
|
410 CALL HCHAR(X,Y,112,5)
|
|
420 NEXT I
|
|
430 FOR I=1 TO 60
|
|
440 X=2*(INT(7*RND))+4
|
|
450 Y=2*(INT(13*RND))+4
|
|
460 CALL VCHAR(X,Y,112,5)
|
|
470 NEXT I
|
|
480 CALL HCHAR(4,4,112,5)
|
|
490 CALL VCHAR(4,4,112,5)
|
|
500 FOR I=1 TO 80
|
|
510 X=2*(INT(9*RND))+4
|
|
520 Y=2*(INT(13*RND))+4
|
|
530 CALL HCHAR(X,Y,96)
|
|
540 NEXT I
|
|
550 FOR I=1 TO 6
|
|
560 CALL HCHAR(23,2+I,ASC(SEG$("SCORE:",I,1)))
|
|
570 NEXT I
|
|
580 CALL SOUND(100,1497,2)
|
|
590 T=0
|
|
600 IF LV<8 THEN 620
|
|
610 LV=7
|
|
620 A=4
|
|
630 B=4
|
|
640 C=4
|
|
650 D=4
|
|
660 PG=112
|
|
670 CALL HCHAR(A,B,120)
|
|
680 IF T<8-LV THEN 1410
|
|
690 IF FL=0 THEN 740
|
|
700 IF FL/2=INT(FL/2)THEN 1140
|
|
710 CCX=CX
|
|
720 CCY=CY
|
|
730 FL=0
|
|
740 CALL GCHAR(C+1,D,GC)
|
|
750 IF GC=120 THEN 1760
|
|
760 IF GC=104 THEN 810
|
|
770 IF GC<>128 THEN 810
|
|
780 CX=1
|
|
790 CY=0
|
|
800 GOTO 1340
|
|
810 CALL GCHAR(C,D+1,GC)
|
|
820 IF GC=120 THEN 1760
|
|
830 IF GC=104 THEN 880
|
|
840 IF GC<>128 THEN 880
|
|
850 CX=0
|
|
860 CY=1
|
|
870 GOTO 1340
|
|
880 CALL GCHAR(C-1,D,GC)
|
|
890 IF GC=120 THEN 1760
|
|
900 IF GC=104 THEN 950
|
|
910 IF GC<>128 THEN 950
|
|
920 CX=-1
|
|
930 CY=0
|
|
940 GOTO 1340
|
|
950 CALL GCHAR(C,D-1,GC)
|
|
960 IF GC=120 THEN 1760
|
|
970 IF GC=128 THEN 1320
|
|
980 IF GC=112 THEN 1320
|
|
990 FL=FL+1
|
|
1000 IF FL/2=INT(FL/2)THEN 1040
|
|
1010 CX=CCX
|
|
1020 CY=CCY
|
|
1030 GOTO 1160
|
|
1040 CX=SGN(A-C)
|
|
1050 CY=0
|
|
1060 IF CX<>0 THEN 1080
|
|
1070 CY=SGN(D-B)
|
|
1080 CALL GCHAR(C+CX,D+CY,GC)
|
|
1090 IF GC=104 THEN 1110
|
|
1100 IF (GC=96)+(GC=112)THEN 1340
|
|
1110 CX=-1
|
|
1120 CY=0
|
|
1130 GOTO 1160
|
|
1140 FL=FL+1
|
|
1150 IF FL>1 THEN 1300
|
|
1160 CALL GCHAR(C+CX,D+CY,GC)
|
|
1170 IF (GC=112)+(GC=96)+(GC=128)THEN 1340
|
|
1180 CX=1
|
|
1190 CY=0
|
|
1200 CALL GCHAR(C+CX,D,GC)
|
|
1210 IF (GC=112)+(GC=96)+(GC=128)THEN 1340
|
|
1220 CX=-1
|
|
1230 CALL GCHAR(C+CX,D,GC)
|
|
1240 IF (GC=112)+(GC=96)+(GC=128)THEN 1340
|
|
1250 CX=0
|
|
1260 CY=-1
|
|
1270 CALL GCHAR(C,D+CY,GC)
|
|
1280 IF (GC=112)+(GC=96)+(GC=128)THEN 1340
|
|
1290 CY=1
|
|
1300 CALL GCHAR(C+CX,D+CY,GC)
|
|
1310 IF GC=104 THEN 1390 ELSE 1340
|
|
1320 CX=0
|
|
1330 CY=-1
|
|
1340 IF PG=96 THEN 1360
|
|
1350 PG=112+FL
|
|
1360 CALL HCHAR(C,D,PG)
|
|
1370 C=C+CX
|
|
1380 D=D+CY
|
|
1390 CALL HCHAR(C,D,42)
|
|
1400 PG=GC
|
|
1410 CALL KEY(1,K1,S)
|
|
1420 IF (K1<0)+(K1>5)THEN 1410
|
|
1430 CALL HCHAR(A,B,128)
|
|
1440 ON K1+1 GOTO 1540,1410,1590,1640,1410,1690
|
|
1450 IF G<>96 THEN 670
|
|
1460 CALL SOUND(100,-1,4)
|
|
1470 SC=SC+1
|
|
1480 SC$=STR$(SC)
|
|
1490 FOR I=1 TO LEN(SC$)
|
|
1500 CALL HCHAR(23,10+I,ASC(SEG$(SC$,I,1)))
|
|
1510 NEXT I
|
|
1520 T=T+1
|
|
1530 IF T<45 THEN 670 ELSE 320
|
|
1540 CALL GCHAR(A+1,B,G)
|
|
1550 IF G=104 THEN 1740
|
|
1560 IF G=42 THEN 1760
|
|
1570 A=A+1
|
|
1580 GOTO 1450
|
|
1590 CALL GCHAR(A,B-1,G)
|
|
1600 IF G=104 THEN 1740
|
|
1610 IF G=42 THEN 1760
|
|
1620 B=B-1
|
|
1630 GOTO 1450
|
|
1640 CALL GCHAR(A,B+1,G)
|
|
1650 IF G=104 THEN 1740
|
|
1660 IF G=42 THEN 1760
|
|
1670 B=B+1
|
|
1680 GOTO 1450
|
|
1690 CALL GCHAR(A-1,B,G)
|
|
1700 IF G=104 THEN 1740
|
|
1710 IF G=42 THEN 1760
|
|
1720 A=A-1
|
|
1730 GOTO 1450
|
|
1740 CALL SOUND(-100,-5,4)
|
|
1750 GOTO 670
|
|
1760 CALL SOUND(200,-6,4)
|
|
1770 FOR I=1 TO 3
|
|
1780 CALL SCREEN(16)
|
|
1790 CALL SCREEN(9)
|
|
1800 CALL SCREEN(8)
|
|
1810 NEXT I
|
|
1820 PRINT "GOT CAUGHT!!!"
|
|
1830 PRINT "TRY AGAIN? (Y/N)";
|
|
1840 CALL KEY(0,K,S)
|
|
1850 IF K=89 THEN 300
|
|
1860 IF K<>78 THEN 1840
|
|
1870 CALL CLEAR
|
|
1880 END
|