home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG021.ARK
/
MAZE.ASC
< prev
next >
Wrap
Text File
|
1984-04-29
|
4KB
|
192 lines
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