1000 DIMW(23,23),V(50,50) 1010 'THIS VERSION RUNS IN 48K-CHANGE DIM STATEMENTS IN LINE 20 1020 'FOR DIFFERENT MEMORY SIZES....... 1030 'ALSO NOTE SUCH CHANGES IN LINES 170 AND 240 1040 PRINT" ----------- MAZE -----------":PRINT:PRINT:PRINT 1050 INPUT"WANT INSTRUCTIONS (Y OR N)";I$ 1060 IFI$="Y"THEN1080 1070 IFI$="N"THEN1170ELSE1050 1080 PRINT 1090 PRINT"THIS PROGRAM WILL PRINT OUT A DIFFERENT MAZE EVERY TIME IT" 1100 PRINT"IS RUN AND GUARANTEES ONLY ONE PATH THROUGH. YOU CAN CHOOSE" 1110 PRINT"THE DIMENSIONS OF THE MAZE. I.E. NUMBER OF SQUARES WIDE" 1120 PRINT"AND THE NUMBER OF SQUARES LONG. 1130 PRINT"THE MAXIMUM WIDTH OF THE MAZE IS 23 SQUARES; AND THE MAXIMUM" 1140 PRINT"LENGTH IS 50 SQUARES" 1150 PRINT 1160 PRINT 1170 INPUT" WIDTH";H 1180 INPUT" LENGTH";V 1190 PRINT 1200 IFH<2 OR H>23 THEN 1220 ELSE 1250 1210 IFV<2 OR V>50 THEN 1220 ELSE 1250 1220 PRINT"MEANINGLESS DIMENSIONS, TRY AGAIN." 1230 PRINT 1240 GOTO1170 1250 PRINTCHR$(26):PRINT 1260 PRINT 1270 Q=0 1280 Z=0 1290 X= INT(RND(7)*H+1) 1300 FOR I=1 TO H 1310 IF I=X THEN 1340 1320 PRINT":--"; 1330 GOTO1350 1340 PRINT": "; 1350 NEXTI 1360 PRINT":" 1370 C=1 1380 W(X,1)=C 1390 C=C+1 1400 R=X 1410 S=1 1420 GOTO1530 1430 IF R<>H THEN 1510 1440 IF S<>V THEN 1480 1450 R=1 1460 S=1 1470 GOTO1520 1480 R=1 1490 S=S+1 1500 GOTO1520 1510 R=R+1 1520 IFW(R,S)=0 THEN 1430 1530 IFR-1=0 THEN 1890 1540 IFW(R-1,S)<>0 THEN 1890 1550 IF S-1=0 THEN 1700 1560 IFW(R,S-1)<>0 THEN 1700 1570 IF R=H THEN 1610 1580 IFW(R+1,S)<>0 THEN 1610 1590 X=INT(RND(7)*3+1) 1600 ON X GOTO 2270,2340,2410 1610 IFS<>V THEN 1650 1620 IFZ=1 THEN 1680 1630 Q=1 1640 GOTO 1660 1650 IFW(R,S+1)<>0 THEN 1680 1660 X=INT(RND(7)*3+1) 1670 ONX GOTO 2270,2340,2510 1680 X=INT(RND(7)*2+1) 1690 ON X GOTO 2270,2340 1700 IFR=H THEN 1810 1710 IFW(R+1,S)<>0 THEN 1810 1720 IFS<>V THEN 1760 1730 IFZ=1 THEN 1790 1740 Q=1 1750 GOTO 1770 1760 IFW(R,S+1)<>0 THEN 1790 1770 X=INT(RND(7)*3+1) 1780 ON X GOTO2270,2410,2510 1790 X=INT(RND(7)*3) 1800 ONXGOTO2270,2410 1810 IFS<>VTHEN1850 1820 IFZ=1THEN1880 1830 Q=1 1840 GOTO1860 1850 IFW(R,S+1)<>0THEN1880 1860 X=INT(RND(7)*3) 1870 ONXGOTO2270,2510 1880 GOTO2270 1890 IFS-1=0THEN2100 1900 IFW(R,S-1)<>0THEN2100 1910 IFR=HTHEN2020 1920 IFW(R+1,S)<>0THEN2020 1930 IFS<>VTHEN1970 1940 IFZ=1THEN2000 1950 Q=1 1960 GOTO1980 1970 IFW(R,S+1)<>0THEN2000 1980 X=INT(RND(7)*4) 1990 ONXGOTO2340,2410,2510 2000 X=INT(RND(7)*3) 2010 ONXGOTO2340,2410 2020 IFS<>VTHEN2060 2030 IFZ=1THEN2090 2040 Q=1 2050 GOTO2070 2060 IFW(R,S+1)<>0THEN2090 2070 X=INT(RND(8)*3) 2080 ONXGOTO2340,2510 2090 GOTO2340 2100 IFR=HTHEN2200 2110 IFW(R+1,S)<>0THEN2200 2120 IFS<>VTHEN2160 2130 IFZ=1THEN2190 2140 Q=1 2150 GOTO2170 2160 IFW(R,S+1)<>0THEN2190 2170 X=INT(RND(8)*3) 2180 ONXGOTO2410,2510 2190 GOTO2410 2200 IFS<>VTHEN2240 2210 IFZ=1THEN2260 2220 Q=1 2230 GOTO2250 2240 IFW(R,S+1)<>0THEN2260 2250 GOTO2510 2260 GOTO2710 2270 W(R-1,S)=C 2280 C=C+1 2290 V(R-1,S)=2 2300 R=R-1 2310 IFC=H*V+1THEN2720 2320 Q=0 2330 GOTO1530 2340 W(R,S-1)=C 2350 C=C+1 2360 V(R,S-1)=1 2370 S=S-1 2380 IFC=H*V+1THEN2720 2390 Q=0 2400 GOTO1530 2410 W(R+1,S)=C 2420 C=C+1 2430 IFV(R,S)=0THEN2460 2440 V(R,S)=3 2450 GOTO2470 2460 V(R,S)=2 2470 R=R+1 2480 IFC=H*V+1THEN2720 2490 Q=0 2500 GOTO1890 2510 IFQ=1THEN2610 2520 W(R,S+1)=C 2530 C=C+1 2540 IFV(R,S)=0THEN2570 2550 V(R,S)=3 2560 GOTO2580 2570 V(R,S)=1 2580 S=S+1 2590 IFC=H*V+1THEN2720 2600 GOTO1530 2610 Z=1 2620 IFV(R,S)=0THEN2660 2630 V(R,S)=3 2640 Q=0 2650 GOTO2710 2660 V(R,S)=1 2670 Q=0 2680 R=1 2690 S=1 2700 GOTO1520 2710 GOTO1430 2720 FORJ=1TOV 2730 PRINT"I"; 2740 FORI=1TOH 2750 IFV(I,J)<2THEN2780 2760 PRINT" "; 2770 GOTO2790 2780 PRINT" I"; 2790 NEXTI 2800 PRINT 2810 FORI=1TOH 2820 IFV(I,J)=0THEN2860 2830 IFV(I,J)=2THEN2860 2840 PRINT": "; 2850 GOTO2870 2860 PRINT":--"; 2870 NEXTI 2880 PRINT":" 2890 NEXTJ 2900 RESET 2830 IFV(I,J)=2THEN2860 2840 PRINT": "; 2850 GOTO2870 2860 PRINT":--"; 2870 NEXTI 2880 PRIN