190 PRINT : PRINT " THE OBJECT IS TO MANEUVER YOURSELF AROUND A MAZE AND FIND AN EXIT. YOU START IN THE LOWER LEFT-HAND CORNER AND MUST MOVE TO THE EXIT(S) IN THE OTHER CORNERS."
200 PRINT " ON THE SCREEN YOU WILL SEE A MAP OFTHE MAZE, UNLESS YOU CHOOSE THE HARDEST LEVEL. YOU WILL ALSO SEE A 3-D VIEW OF YOUR POSITION IN THE MAZE."
210 PRINT " USE THE I, J, K, AND M KEYS TO MOVEFORWARD, LEFT, RIGHT, AND BACKWARDS RESPECTIVELY. NOTE: THE KEYS DO NOT MOVE YOU UP, DOWN, AND SO ON. IF YOU ARE FACING WEST AND YOU PRESS I, YOU WILL MOVE WEST, NOT NORTH."
220 PRINT : PRINT "PRESS <RETURN>";: GET A$
230 HOME : PRINT : PRINT : PRINT " WHEN THE 'INPUT' SIGN APPEARS YOU MUST PRESS I, J, K, OR M. IF YOU PRESS ANY OTHER KEY OR TRY TO GO THROUGH A WALL, THEN AN 'ERROR' SIGN WILL APPEAR."
240 PRINT : PRINT "HOW MANY EXITS DO YOU WANT?"
250 PRINT " 1) ONE EXIT"
260 PRINT " 2) TWO EXITS"
270 PRINT " 3) THREE EXITS"
280 VTAB 13: INPUT "CHOOSE ONE: ";L$:L = VAL(L$)
290 IF L <1 OR L >3 THEN VTAB 14: INPUT "PLEASE CHOOSE 1,2, OR 3: ";L$:L = VAL(L$): GOTO 290
300 VTAB 15: INPUT "DO YOU WANT A HARD MAZE? ";H$:H$ = LEFT$(H$,1)
310 IF LEN(H$) < >0 THEN ZZ = ASC(H$): IF ZZ >96 THEN ZZ = ZZ -32:H$ = CHR$(ZZ)
320 IF H$ < >"Y" AND H$ < >"N" THEN VTAB 16: INPUT "PLEASE ANSWER Y OR N: ";H$:H$ = LEFT$(H$,1): GOTO 310
330 IF H$ = "Y" THEN H$ = "H"
340 VTAB 17: INPUT "WOULD YOU LIKE A MAP OF THE MAZE? ";M$:M$ = LEFT$(M$,1)
350 IF LEN(M$) < >0 THEN ZZ = ASC(M$): IF ZZ >96 THEN ZZ = ZZ -32:M$ = CHR$(ZZ)
360 IF M$ < >"Y" AND M$ < >"N" THEN VTAB 18: INPUT "PLEASE ANSWER Y OR N: ";M$:M$ = LEFT$(M$,1): GOTO 350
370 VTAB 19: INPUT "WOULD YOU LIKE THE COMPUTER TO SHOW YOU WHICH WAY YOU ARE FACING AND HOW CLOSE TO THE CORNERS YOU ARE? ";L$:L$ = LEFT$(L$,1)
380 IF LEN(L$) < >0 THEN ZZ = ASC(L$): IF ZZ >96 THEN ZZ = ZZ -32:L$ = CHR$(ZZ)
390 IF L$ < >"Y" AND L$ < >"N" THEN VTAB 22: INPUT "PLEASE ANSWER Y OR N: ";L$:L$ = LEFT$(L$,1): GOTO 380
430 FOR M1 = 255 TO 15 STEP -15:M2 = 10: GOSUB 2620: NEXT M1
440 DIM N(100),S(100),E(100),W(100)
450 FOR I = 1 TO 10
460 W(I) = 1
470 N(I *10) = 1
480 S((I *10) -9) = 1
490 E(90 +I) = 1
500 NEXT I
510 FOR I = 1 TO 89
520 X = INT( RND(1) *3) +1
530 IF X = 1 THEN POKE 780,50: POKE 781,10: CALL 787
540 IF X = 2 THEN POKE 780,100: POKE 781,10: CALL 787
550 IF X = 3 THEN POKE 780,150: POKE 781,10: CALL 787
560 IF X = 4 THEN POKE 780,250: POKE 781,20: CALL 787
570 IF H$ = "H" THEN X = INT( RND(1) *4) +1
580 IF X = 1 THEN E(I) = 1: IF I <90 THEN W(I +10) = 1
590 IF H$ < >"H" THEN IF X = 2 THEN E(I) = 1: IF I <90 THEN W(I +10) = 1
600 IF X = 3 THEN N(I) = 1:S(I +1) = 1:I = I +1: IF I >100 THEN 680
610 IF H$ = "H" THEN IF X = 2 THEN E(I +1) = 1: IF I <90 THEN W(I +11) = 1
620 IF H$ = "H" THEN IF X = 4 THEN N(I +3) = 1:S(I +4) = 1
630 NEXT I
640 IF L = 1 THEN N(100) = 0:E(100) = 0
650 IF L = 2 THEN N(100) = 0:E(100) = 0:E(91) = 0
660 IF L = 3 THEN N(100) = 0:E(100) = 0:E(91) = 0:W(10) = 0
670 GOSUB 2810
680 P = 1:D$ = "N"
690 M = M +1
700 HOME
710 GOSUB 2020
720 GOSUB 1120
730 REM INPUT
740 HCOLOR= 3: GOSUB 2410: HCOLOR= 0: GOSUB 2480: GET A$: ON A$ = CHR$(27) GOTO 2790: IF LEN(A$) < >0 THEN ZZ = ASC(A$): IF ZZ >96 THEN ZZ = ZZ -32:A$ = CHR$(ZZ)
750 HCOLOR= 3: GOSUB 2480: HCOLOR= 0: GOSUB 2410
760 IF A$ < >"I" THEN IF A$ < >"J" THEN IF A$ < >"K" THEN IF A$ < >"M" THEN GOSUB 2250: GOTO 740
770 IF A$ = "I" THEN IF D$ = "W" THEN IF W(P) = 0 THEN P = P -10: GOTO 970
780 IF A$ = "I" THEN IF D$ = "N" THEN IF N(P) = 0 THEN P = P +1: GOTO 970
790 IF A$ = "I" THEN IF D$ = "E" THEN IF E(P) = 0 THEN P = P +10: GOTO 970
800 IF A$ = "I" THEN IF D$ = "S" THEN IF S(P) = 0 THEN P = P -1: GOTO 970
810 IF A$ = "I" THEN GOSUB 2250: GOTO 740
820 IF A$ = "J" THEN IF D$ = "N" THEN IF W(P) = 0 THEN P = P -10: GOTO 970
830 IF A$ = "J" THEN IF D$ = "W" THEN IF S(P) = 0 THEN P = P -1: GOTO 970
840 IF A$ = "J" THEN IF D$ = "S" THEN IF E(P) = 0 THEN P = P +10: GOTO 970
850 IF A$ = "J" THEN IF D$ = "E" THEN IF N(P) = 0 THEN P = P +1: GOTO 970
860 IF A$ = "J" THEN GOSUB 2250: GOTO 740
870 IF A$ = "K" THEN IF D$ = "N" THEN IF E(P) = 0 THEN P = P +10: GOTO 970
880 IF A$ = "K" THEN IF D$ = "E" THEN IF S(P) = 0 THEN P = P -1: GOTO 970
890 IF A$ = "K" THEN IF D$ = "S" THEN IF W(P) = 0 THEN P = P -10: GOTO 970
900 IF A$ = "K" THEN IF D$ = "W" THEN IF N(P) = 0 THEN P = P +1: GOTO 970
910 IF A$ = "K" THEN GOSUB 2250: GOTO 740
920 IF A$ = "M" THEN IF D$ = "N" THEN IF S(P) = 0 THEN P = P -1: GOTO 970
930 IF A$ = "M" THEN IF D$ = "E" THEN IF W(P) = 0 THEN P = P -10: GOTO 970
940 IF A$ = "M" THEN IF D$ = "S" THEN IF N(P) = 0 THEN P = P +1: GOTO 970
950 IF A$ = "M" THEN IF D$ = "W" THEN IF E(P) = 0 THEN P = P +10: GOTO 970
960 IF A$ = "M" THEN GOSUB 2250: GOTO 740
970 REM
980 IF A$ = "J" THEN IF D$ = "N" THEN D$ = "W": GOTO 1100
990 IF A$ = "J" THEN IF D$ = "W" THEN D$ = "S": GOTO 1100
1000 IF A$ = "J" THEN IF D$ = "S" THEN D$ = "E": GOTO 1100
1010 IF A$ = "J" THEN IF D$ = "E" THEN D$ = "N": GOTO 1100
1020 IF A$ = "K" THEN IF D$ = "N" THEN D$ = "E": GOTO 1100
1030 IF A$ = "K" THEN IF D$ = "W" THEN D$ = "N": GOTO 1100
1040 IF A$ = "K" THEN IF D$ = "S" THEN D$ = "W": GOTO 1100
1050 IF A$ = "K" THEN IF D$ = "E" THEN D$ = "S": GOTO 1100
1060 IF A$ = "M" THEN IF D$ = "N" THEN D$ = "S": GOTO 1100
1070 IF A$ = "M" THEN IF D$ = "W" THEN D$ = "E": GOTO 1100
1080 IF A$ = "M" THEN IF D$ = "S" THEN D$ = "N": GOTO 1100
1090 IF A$ = "M" THEN IF D$ = "E" THEN D$ = "W"
1100 IF P = 0 OR P = 110 OR P = 101 THEN GOTO 2630
1110 GOTO 690
1120 REM DETERMINE POSITION & DRAW IT
1130 IF D$ < >"N" THEN 1200
1140 IF W(P) = 1 THEN GOSUB 1400
1150 IF W(P) = 0 THEN GOSUB 1710
1160 IF N(P) = 1 THEN GOSUB 1670
1170 IF E(P) = 1 THEN GOSUB 1540
1180 IF E(P) = 0 THEN GOSUB 1880
1190 RETURN
1200 IF D$ < >"E" THEN 1270
1210 IF N(P) = 1 THEN GOSUB 1400
1220 IF N(P) = 0 THEN GOSUB 1710
1230 IF E(P) = 1 THEN GOSUB 1670
1240 IF S(P) = 1 THEN GOSUB 1540
1250 IF S(P) = 0 THEN GOSUB 1880
1260 RETURN
1270 IF D$ < >"S" THEN 1340
1280 IF E(P) = 1 THEN GOSUB 1400
1290 IF E(P) = 0 THEN GOSUB 1710
1300 IF S(P) = 1 THEN GOSUB 1670
1310 IF W(P) = 1 THEN GOSUB 1540
1320 IF W(P) = 0 THEN GOSUB 1880
1330 RETURN
1340 IF S(P) = 1 THEN GOSUB 1400
1350 IF S(P) = 0 THEN GOSUB 1710
1360 IF W(P) = 1 THEN GOSUB 1670
1370 IF N(P) = 1 THEN GOSUB 1540
1380 IF N(P) = 0 THEN GOSUB 1880
1390 RETURN
1400 REM DRAW LEFT WALL CLOSED
1410 HPLOT 0,25 TO 55,75 TO 55,150 TO 0,185
1420 Y2 = 75:Y1 = 25
1430 FOR I = 1 TO 10
1440 Y1 = Y1 +16.1:Y2 = Y2 +7.5
1450 HPLOT 0,Y1 TO 55,Y2
1460 NEXT I
1470 HPLOT 0,25 TO 0,185
1480 Y1 = 25:Y2 = 185
1490 FOR X = 0 TO 55 STEP 4.3
1500 Y1 = Y1 +3.6
1510 Y2 = Y2 -2.7
1520 HPLOT X,Y1 TO X,Y2: NEXT X
1530 RETURN
1540 REM DRAW RIGHT WALL CLOSED
1550 HPLOT 170,25 TO 104,75 TO 104,150 TO 170,185 TO 170,25
1560 Y1 = 25:Y2 = 75
1570 FOR I = 1 TO 10
1580 Y1 = Y1 +16.1:Y2 = Y2 +7.5
1590 HPLOT 104,Y2 TO 170,Y1
1600 NEXT I
1610 Y1 = 25:Y2 = 185
1620 FOR X = 170 TO 104 STEP -4.265
1630 Y1 = Y1 +3.1
1640 Y2 = Y2 -2.2
1650 HPLOT X,Y1 TO X,Y2: NEXT X
1660 RETURN
1670 REM DRAW NORTH WALL CLOSED
1680 FOR Y = 75 TO 150 STEP 10: HPLOT 55,Y TO 104,Y: NEXT Y: HPLOT 55,150 TO 104,150
1690 FOR X = 55 TO 104 STEP 4.263: HPLOT X,75 TO X,150: NEXT X
1700 RETURN
1710 REM DRAW LEFT WALL OPEN
1720 HPLOT 0,25 TO 17,39 TO 17,175 TO 0,185 TO 0,25
1730 Y2 = 39:Y1 = 25
1740 FOR I = 1 TO 10: HPLOT 17,Y2 TO 0,Y1:Y2 = Y2 +13.6:Y1 = Y1 +16.1: NEXT I
1750 HPLOT 4,28 TO 4,183: HPLOT 9,32 TO 9,180: HPLOT 13,35 TO 13,177
1760 HPLOT 34,53 TO 55,75 TO 55,150 TO 34,164 TO 34,53
1770 Y1 = 53:Y2 = 75
1780 FOR I = 1 TO 10: HPLOT 34,Y1 TO 54,Y2:Y1 = Y1 +11.1:Y2 = Y2 +7.5: NEXT I
1790 HPLOT 38,57 TO 38,161: HPLOT 43,61 TO 43,159: HPLOT 47,66 TO 47,156: HPLOT 51,71 TO 51,153
1800 HPLOT 34,53 TO 17,65: HPLOT 17,160 TO 34,164
1810 HCOLOR= 1: FOR Y = 164 TO 175: HPLOT 18,Y TO 35,Y: NEXT Y: HPLOT 18,163 TO 30,163: HPLOT 18,162 TO 26,162: HPLOT 18,162 TO 23,162: HPLOT 18,161 TO 21,161
1820 HCOLOR= 3
1830 Y1 = 65:Y2 = 53: FOR I = 1 TO 10: HPLOT 18,Y1 TO 34,Y2:Y1 = Y1 +9.9:Y2 = Y2 +11.1: NEXT I
1840 HPLOT 30,55 TO 30,163
1850 HPLOT 26,59 TO 26,162
1860 HPLOT 21,62 TO 21,161
1870 RETURN
1880 REM DRAW RIGHT SIDE OPEN
1890 HPLOT 170,25 TO 153,37 TO 153,177 TO 170,186 TO 170,25
1900 Y1 = 37:Y2 = 25
1910 FOR I = 1 TO 10:Y1 = Y1 +13.9:Y2 = Y2 +16.1: HPLOT 153,Y1 TO 170,Y2: NEXT I
1920 HPLOT 166,28 TO 166,183: HPLOT 161,31 TO 161,181: HPLOT 156,34 TO 156,179
1930 HPLOT 136,49 TO 136,168 TO 104,150 TO 104,75 TO 136,49
1940 Y1 = 75:Y2 = 49: FOR I = 1 TO 10: HPLOT 104,Y1 TO 136,Y2:Y1 = Y1 +7.5:Y2 = Y2 +11.9: NEXT I
1950 HPLOT 132,52 TO 132,166: HPLOT 127,56 TO 127,164: HPLOT 123,60 TO 123,161: HPLOT 119,63 TO 119,159: HPLOT 114,66 TO 114,157: HPLOT 110,70 TO 110,155: HPLOT 106,74 TO 106,153
1960 HPLOT 136,49 TO 152,65: HPLOT 136,168 TO 152,162
1970 Y1 = 49:Y2 = 65: FOR I = 1 TO 10: HPLOT 136,Y1 TO 152,Y2:Y2 = Y2 +9.7:Y1 = Y1 +11.9: NEXT I
1980 HCOLOR= 1: FOR Y = 168 TO 180: HPLOT 136,Y TO 152,Y: NEXT Y: HPLOT 152,167 TO 140,167: HPLOT 152,166 TO 143,166: HPLOT 152,165 TO 146,165: HPLOT 152,164 TO 148,164
1990 HCOLOR= 3
2000 HPLOT 140,52 TO 140,166: HPLOT 144,57 TO 144,165: HPLOT 149,63 TO 149,163
2010 RETURN
2020 REM GREEN BLANKET
2030 HCOLOR= 3: GOSUB 2360
2040 FG = FG +1: IF FG >1 THEN GOSUB 2240: HCOLOR= 0: HPLOT 1,64 TO 30,64
2050 GG = 0:GN = 0:GG = P
2060 IF GG >10 THEN GG = GG -10:GN = GN +1: GOTO 2060
2070 X = 175 +(GN *10):Y = 190 -(GG *10)
2080 HCOLOR= 1
2090 IF L$ = "N" THEN 2140
2100 SCALE= 1: HCOLOR= 3: IF D$ = "N" THEN ROT= 0: DRAW 1 AT X +5,Y -5
2110 IF D$ = "S" THEN ROT= 32: DRAW 1 AT X +5,Y -15
2120 IF D$ = "W" THEN ROT= 48: DRAW 1 AT X +10,Y -10
2130 IF D$ = "E" THEN ROT= 16: DRAW 1 AT X,Y -10
2140 HCOLOR= 1: IF FG >1 THEN 2210
2150 X1 = 55:X2 = 104
2160 FOR Y = 151 TO 185
2170 HPLOT X1,Y TO X2,Y
2180 X1 = X1 -1.46:X2 = X2 +1.82
2190 NEXT Y
2200 HCOLOR= 0: GOSUB 2360
2210 HCOLOR= 3: HPLOT 0,25 TO 170,25 TO 170,185 TO 0,185 TO 0,25: IF FG >1 THEN RETURN
2790 TEXT : HOME : INPUT "AGAIN? ";A$:A$ = LEFT$(A$,1): IF A$ = "Y" OR A$ = CHR$(121) THEN RUN 130
2800 END
2810 REM DRAW MAP
2820 HGR2
2830 HCOLOR= 3
2840 FOR I = 1 TO 100
2850 P = I:N = 0
2860 IF P >10 THEN P = P -10:N = N +1: GOTO 2860
2870 M = 175 +(N *10)
2880 IF W(I) = 1 THEN HPLOT M,185 -(P *10) TO M,175 -(P *10)
2890 NEXT I
2900 FOR I = 90 TO 100
2910 P = I:N = 0
2920 IF P >10 THEN P = P -10:N = N +1: GOTO 2920
2930 M = 175 +(N *10)
2940 IF E(I) = 1 THEN HPLOT M +10,185 -(P *10) TO M +10,175 -(P *10)
2950 NEXT I
2960 FOR I = 1 TO 100
2970 P = I:N = 0
2980 IF P >10 THEN P = P -10:N = N +1: GOTO 2980
2990 M = 175 +(N *10)
3000 IF S(I) = 1 THEN HPLOT M,185 -(P *10) TO M +10,185 -(P *10)
3010 NEXT I
3020 FOR I = 1 TO 100
3030 P = I:N = 0
3040 IF P >10 THEN P = P -10:N = N +1: GOTO 3040
3050 M = 175 +(N *10)
3060 IF N(I) = 1 THEN HPLOT M,175 -(P *10) TO M +10,175 -(P *10)
3070 NEXT I
3080 IF M$ = "N" THEN FOR I = 1 TO 1000: NEXT I: FOR I = 75 TO 175: HCOLOR= 1: HPLOT 175,I TO 275,I: NEXT I
3090 REM TITLE
3100 HCOLOR= 3: FOR I = 8 TO 22: HPLOT 8,I TO 200,I: NEXT I: HCOLOR= 4
3110 HPLOT 10,12 TO 10,10 TO 20,10 TO 20,12: HPLOT 15,10 TO 15,20 TO 13,20 TO 17,20
3120 HPLOT 38,20 TO 42,20: HPLOT 40,20 TO 45,10 TO 50,20: HPLOT 48,20 TO 52,20: HPLOT 43,15 TO 47,15
3130 HPLOT 23,20 TO 27,20: HPLOT 23,10 TO 27,10: HPLOT 33,10 TO 37,10: HPLOT 33,20 TO 37,20: HPLOT 25,10 TO 25,20: HPLOT 35,10 TO 35,20: HPLOT 25,15 TO 35,15
3140 HPLOT 50,12 TO 50,10 TO 60,10 TO 60,12: HPLOT 55,10 TO 55,20 TO 53,20 TO 57,20
3150 HPLOT 63,10 TO 63,12: HPLOT 64,10 TO 64,12: HPLOT 65,10 TO 65,15
3160 HPLOT 80,12 TO 80,10 TO 70,10 TO 70,15 TO 80,15 TO 80,20 TO 70,20 TO 70,18
3170 HPLOT 88,20 TO 92,20: HPLOT 90,20 TO 95,10 TO 100,20: HPLOT 98,20 TO 102,20: HPLOT 93,15 TO 97,15
3180 HPLOT 105,20 TO 105,10 TO 110,15 TO 115,10 TO 115,20: HPLOT 103,20 TO 107,20: HPLOT 113,20 TO 117,20
3190 HPLOT 118,20 TO 122,20: HPLOT 120,20 TO 125,10 TO 130,20: HPLOT 128,20 TO 132,20: HPLOT 123,15 TO 127,15
3200 HPLOT 135,12 TO 135,10 TO 145,10 TO 135,20 TO 145,20 TO 145,18
3210 HPLOT 150,12 TO 150,10 TO 160,10 TO 160,12: HPLOT 150,18 TO 150,20 TO 160,20 TO 160,18: HPLOT 155,10 TO 155,20
3220 HPLOT 165,20 TO 165,10 TO 175,20 TO 175,10: HPLOT 163,20 TO 167,20: HPLOT 173,10 TO 177,10
3230 HPLOT 190,13 TO 190,10 TO 180,10 TO 180,20 TO 190,20 TO 190,15: HPLOT 187,15 TO 193,15
3240 RETURN
3250 HOME : VTAB 10: PRINT "CANNOT LOAD SOUND AND ARROW FILES": PRINT