0 GOTO 3000 1 GR 3 COLOR= BG: GOSUB 2200 4 COLOR= WC: GOSUB 2100 5 COLOR= WC 7 X = 20:Y = 20 8 H = 19:V = 21 10 GET GG 20 IF GG = 8 THEN V = V - 1 30 IF GG = 2 THEN V = V + 1 40 IF GG = 4 THEN H = H - 1 50 IF GG = 6 THEN H = H + 1 60 IF GG = 7 THEN COLOR= BG 70 IF GG = 9 THEN COLOR= WC 80 IF GG = 5 THEN COLOR= GC: PLOT H,V:EX = H:EY = V: GOTO 130 90 PLOT H,V 95 GOTO 10 100 GET CC 105 COLOR= BG: PLOT X,Y 110 IF CC = 6 AND SCRN( X + 1,Y) = GC THEN 1070 112 IF CC = 4 AND SCRN( X - 1,Y) = GC THEN 1070 114 IF CC = 8 AND SCRN( X,Y - 1) = GC THEN 1070 116 IF CC = 2 AND SCRN( X,Y + 1) = GC THEN 1070 120 GOSUB 1000 130 COLOR= PC: PLOT X,Y 140 GOTO 100 1000 IF CC = 8 AND SCRN( X,Y - 1) = BG THEN Y = Y - 1 1010 IF CC = 2 AND SCRN( X,Y + 1) = BG THEN Y = Y + 1 1020 IF CC = 4 AND SCRN( X - 1,Y) = BG THEN X = X - 1 1030 IF CC = 6 AND SCRN( X + 1,Y) = BG THEN X = X + 1 1040 RETURN 1070 PRINT "YOU WON!!" 1080 PRINT "" 1085 INPUT "DO YOU WANT TO SAVE THIS?(Y/N)> ";WD$ 1087 IF WD$ = "Y" THEN GOTO 3599 1088 TEXT : GOTO 3200 2000 FOR I = 0 TO 38 STEP 2 2010 HLIN 0,38 AT I 2020 NEXT I 2030 FOR I = 0 TO 38 STEP 2 2040 VLIN 0,38 AT I 2050 NEXT I 2060 RETURN 2100 VLIN 0,38 AT 0 2110 VLIN 0,38 AT 38 2120 HLIN 0,38 AT 0 2130 HLIN 0,38 AT 38 2140 RETURN 2200 FOR U = 0 TO 38 STEP 1 2210 HLIN 0,38 AT U 2220 NEXT U 2230 RETURN 3000 TEXT : HOME 3003 GOSUB 8000 3005 ONERR GOTO 100 3010 INVERSE 3030 PRINT " " 3040 PRINT " M E G A M A Z E " 3050 PRINT " " 3060 NORMAL 3070 PRINT "" 3080 PRINT "* * * * * * * * * * * * * * * * * * * *" 3090 PRINT " B Y S T E V E B E N S O N " 3100 PRINT "* * * * * * * * * * * * * * * * * * * *" 3110 VTAB 10 3120 PRINT SPC( 12);"<< HIT ANY KEY >>" 3130 VTAB 20 3140 PRINT SPC( 12);"1992 APPLE VERSION 1.0" 3150 A = NOT A 3160 IF A = 0 THEN VTAB 5: PRINT "* * * * * * * * * * * * * * * * * * * *": VTAB 7: PRINT "* * * * * * * * * * * * * * * * * * * *" 3170 IF A = 1 THEN VTAB 5: PRINT " * * * * * * * * * * * * * * * * * * * ": VTAB 7: PRINT " * * * * * * * * * * * * * * * * * * * " 3180 IF PEEK ( - 16384) > 127 THEN GET TX$: GOTO 3200 3190 GOTO 3150 3200 HOME 3201 D$ = CHR$ (4) 3210 VTAB 4: HTAB 10 3220 PRINT "MAZE MENU" 3230 VTAB 5: HTAB 10 3240 PRINT "---- ----" 3250 PRINT "" 3255 HTAB 5 3260 PRINT " 1> GET A MAZE" 3270 PRINT "" 3275 HTAB 5 3280 PRINT " 2> DESIGN" 3285 HTAB 5 3290 PRINT "" 3295 HTAB 5 3300 PRINT " 3> END" 3310 PRINT "" 3315 HTAB 9 3320 PRINT "4> SET COLOR" 3330 IF PEEK ( - 16384) < 127 THEN GOTO 3330 3340 GET PX$ 3345 IF PX$ = "1" THEN GOTO 3760 3350 IF PX$ = "3" THEN VTAB 20: END 3360 IF PX$ = "4" THEN GOTO 3400 3365 GOTO 3550 3400 GR : HOME 3405 TC = 0 3410 FOR VB = 0 TO 30 STEP 2 3420 COLOR= TC: VLIN 0,39 AT VB 3430 TC = TC + 1 3440 NEXT VB 3445 GOTO 3465 3450 PRINT "0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1" 3460 HOME 3461 PRINT "0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1" 3462 PRINT ". . . . . . . . . . 0 1 2 3 4 5" 3463 RETURN 3465 GOSUB 3460 3470 VTAB 24: INPUT "WALL COLOR>";WC 3475 GOSUB 3460 3480 VTAB 24: INPUT "GOAL COLOR>";GC 3485 GOSUB 3460 3490 VTAB 24: INPUT "YOUR COLOR>";PC 3495 GOSUB 3460 3500 VTAB 24: INPUT "BACK GROUND COLOR>";BG 3510 TEXT : GOTO 3200 3550 IF BG = 0 AND WC = 0 AND PC = 0 AND GC = 0 THEN HOME : HTAB 14: PRINT "<< NOTICE >>": PRINT "": PRINT " YOU HAVE NOT YET SET THE COLORS. YOU": PRINT "MUST GO BACK AND DO THIS OTHER WISE THE": PRINT "ENTIRE SCREEN WILL GO BLANK WHEN YOU ": PRINT "TRY TO PLAY OR DESIGN THE GAME." 3560 IF BG = 0 AND WC = 0 AND PC = 0 AND GC = 0 THEN GET ASD$: GOTO 3200 3570 IF BG = WC OR BG = PC OR BG = GC OR WC = GC OR WC = PC OR PC = GC THEN GOTO 3580 3575 IF PX$ = "2" THEN GOTO 1 3580 HOME : HTAB 14: PRINT "<< NOTICE >>" 3590 PRINT "" 3593 PRINT " THE COLOR SETTINGS YOU HAVE CHOOSEN " 3594 PRINT "ARE ILLEGAL. NO TWO SETTINGS CAN BE THE" 3595 PRINT "SAME." 3598 GET ASD$: GOTO 3200 3599 DIM SA(38,38) 3600 FOR HJ = 1 TO 37 STEP 1 3610 FOR GJ = 1 TO 37 STEP 1 3620 IF SCRN( HJ,GJ) = WC THEN SA(HJ,GJ) = NOT SA(HJ,GJ) 3630 NEXT GJ 3640 NEXT HJ 3650 TEXT : HOME 3660 INPUT "NAME FOR MAZE?> ";NA$ 3670 PRINT D$;"OPEN STEVE/MAZEDATA/";NA$ 3680 PRINT D$;"WRITE STEVE/MAZEDATA/";NA$ 3685 PRINT EX 3687 PRINT EY 3690 FOR HK = 1 TO 37 STEP 1 3700 FOR GK = 1 TO 37 STEP 1 3710 PRINT SA(HK,GK) 3720 NEXT GK 3730 NEXT HK 3740 PRINT D$;"CLOSE STEVE/MAZEDATA/";NA$ 3750 GOTO 3200 3760 HOME 3770 INPUT "NAME OF MAZE> ";NA$ 3773 DIM SA(38,38) 3774 GR : HOME 3775 COLOR= WC: GOSUB 2100 3790 PRINT D$;"OPEN STEVE/MAZEDATA/";NA$ 3800 PRINT D$;"READ STEVE/MAZEDATA/";NA$ 3805 INPUT EX 3807 INPUT EY 3810 FOR HK = 1 TO 37 STEP 1 3820 FOR GK = 1 TO 37 STEP 1 3830 INPUT SA(HK,GK) 3840 IF SA(HK,GK) = 1 THEN PLOT HK,GK 3850 NEXT GK 3860 NEXT HK 3870 PRINT D$;"CLOSE STEVE/MAZEDATA/";NA$ 3940 X = 20:Y = 20 3945 COLOR= GC: PLOT EX,EY 3950 GOTO 130 5023 DIM A$(3): DIM M(361),T(361) 5025 TT = 999: GR : COLOR= 15 5027 FOR I = 0 TO 38 STEP 2: VLIN 0,38 AT I: HLIN 0,38 AT I: NEXT I 5028 COLOR= 0 5029 S = 1000 5031 FOR I = 1 TO 361:T(I) = 0: NEXT I 5032 FOR I = 1 TO 361:M(1) = 11: NEXT I 5033 X = INT ( RND (1) * 19):Y = INT ( RND (1) * 19):C = 361 5034 IF C = 1 THEN 5058 5035 R = 0:D = 0:L = 0:U = 0:K = K + 0 * (Y - 1):M(K) = - ABS (M(K)):C = C - 1 5036 IF X = 19 THEN 5037:R = M(K + 1) > 0 5037 IF Y = 19 THEN 5038:D = M(K + 19) > 0 5038 IF X = 1 THEN 5039:L = M(K - 1) > 0 5039 IF Y = 1 THEN 5040:U = M(K - 19) > 0 5040 Q = R + D + L + U 5041 IF (Q < 3 AND INT ( RND (1) * 10) < 2) OR Q = 0 THEN 5055 5042 DR = INT ( RND (1) * 4) 5043 GOTO 5044 + 2 * DR 5044 IF NOT R THEN 5042:M(K) = M(K) + 1:X = X + 1 5045 VLIN 2 * Y - 2,2 * Y - 1 AT 2 * (X - 1) 5046 GOTO 5034 5047 IF NOT D THEN 5042:M(K) = M(K) + 10:Y = Y + 1 5048 HLIN 2 * X - 2,2 * X - 1 AT 2 * Y - 1 5049 GOTO 5034 5053 IF NOT U THEN 5042:M(K - 19) = M(K - 19) - 10:Y = Y - 1 5054 HLIN 2 * X - 2,2 * X - 1 AT 2 * Y: GOTO 5034 5055 X = INT ( RND (1) * 19) 5056 IF M(X + 19 * (Y - 1)) > 0 THEN 5055 5057 C = C + 1: GOTO 5034 8000 BG = 0:PC = 12:WC = 15:GC = 13 8010 RETURN