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 >
Text File  |  1984-04-29  |  4KB  |  192 lines

  1. 1000 DIMW(23,23),V(50,50)
  2. 1010 'THIS VERSION RUNS IN 48K-CHANGE DIM STATEMENTS IN LINE 20
  3. 1020 'FOR DIFFERENT MEMORY SIZES.......
  4. 1030 'ALSO NOTE SUCH CHANGES IN LINES 170 AND 240
  5. 1040 PRINT"    ----------- MAZE -----------":PRINT:PRINT:PRINT
  6. 1050 INPUT"WANT INSTRUCTIONS (Y OR N)";I$
  7. 1060 IFI$="Y"THEN1080
  8. 1070 IFI$="N"THEN1170ELSE1050
  9. 1080 PRINT
  10. 1090 PRINT"THIS PROGRAM WILL PRINT OUT A DIFFERENT MAZE EVERY TIME IT"
  11. 1100 PRINT"IS RUN AND GUARANTEES ONLY ONE PATH THROUGH. YOU CAN CHOOSE"
  12. 1110 PRINT"THE DIMENSIONS OF THE MAZE. I.E. NUMBER OF SQUARES WIDE"
  13. 1120 PRINT"AND THE NUMBER OF SQUARES LONG.
  14. 1130 PRINT"THE MAXIMUM WIDTH OF THE MAZE IS 23 SQUARES; AND THE MAXIMUM"
  15. 1140 PRINT"LENGTH IS 50 SQUARES"
  16. 1150 PRINT
  17. 1160 PRINT
  18. 1170 INPUT" WIDTH";H
  19. 1180 INPUT" LENGTH";V
  20. 1190 PRINT
  21. 1200 IFH<2 OR H>23 THEN 1220 ELSE 1250
  22. 1210 IFV<2 OR V>50 THEN 1220 ELSE 1250
  23. 1220 PRINT"MEANINGLESS DIMENSIONS, TRY AGAIN."
  24. 1230 PRINT
  25. 1240 GOTO1170
  26. 1250 PRINTCHR$(26):PRINT
  27. 1260 PRINT
  28. 1270 Q=0
  29. 1280 Z=0
  30. 1290 X= INT(RND(7)*H+1)
  31. 1300 FOR I=1 TO H
  32. 1310 IF I=X THEN 1340
  33. 1320 PRINT":--";
  34. 1330 GOTO1350
  35. 1340 PRINT":  ";
  36. 1350 NEXTI
  37. 1360 PRINT":"
  38. 1370 C=1
  39. 1380 W(X,1)=C
  40. 1390 C=C+1
  41. 1400 R=X
  42. 1410 S=1
  43. 1420 GOTO1530
  44. 1430 IF R<>H THEN 1510
  45. 1440 IF S<>V THEN 1480
  46. 1450 R=1
  47. 1460 S=1
  48. 1470 GOTO1520
  49. 1480 R=1
  50. 1490 S=S+1
  51. 1500 GOTO1520
  52. 1510 R=R+1
  53. 1520 IFW(R,S)=0 THEN 1430
  54. 1530 IFR-1=0 THEN 1890
  55. 1540 IFW(R-1,S)<>0 THEN 1890
  56. 1550 IF S-1=0 THEN 1700
  57. 1560 IFW(R,S-1)<>0 THEN 1700
  58. 1570 IF R=H THEN 1610
  59. 1580 IFW(R+1,S)<>0 THEN 1610
  60. 1590 X=INT(RND(7)*3+1)
  61. 1600 ON X GOTO 2270,2340,2410
  62. 1610 IFS<>V THEN 1650
  63. 1620 IFZ=1 THEN 1680
  64. 1630 Q=1
  65. 1640 GOTO 1660
  66. 1650 IFW(R,S+1)<>0 THEN 1680
  67. 1660 X=INT(RND(7)*3+1)
  68. 1670 ONX GOTO 2270,2340,2510
  69. 1680 X=INT(RND(7)*2+1)
  70. 1690 ON X GOTO 2270,2340
  71. 1700 IFR=H THEN 1810
  72. 1710 IFW(R+1,S)<>0 THEN 1810
  73. 1720 IFS<>V THEN 1760
  74. 1730 IFZ=1 THEN 1790
  75. 1740 Q=1
  76. 1750 GOTO 1770
  77. 1760 IFW(R,S+1)<>0 THEN 1790
  78. 1770 X=INT(RND(7)*3+1)
  79. 1780 ON X GOTO2270,2410,2510
  80. 1790 X=INT(RND(7)*3)
  81. 1800 ONXGOTO2270,2410
  82. 1810 IFS<>VTHEN1850
  83. 1820 IFZ=1THEN1880
  84. 1830 Q=1
  85. 1840 GOTO1860
  86. 1850 IFW(R,S+1)<>0THEN1880
  87. 1860 X=INT(RND(7)*3)
  88. 1870 ONXGOTO2270,2510
  89. 1880 GOTO2270
  90. 1890 IFS-1=0THEN2100
  91. 1900 IFW(R,S-1)<>0THEN2100
  92. 1910 IFR=HTHEN2020
  93. 1920 IFW(R+1,S)<>0THEN2020
  94. 1930 IFS<>VTHEN1970
  95. 1940 IFZ=1THEN2000
  96. 1950 Q=1
  97. 1960 GOTO1980
  98. 1970 IFW(R,S+1)<>0THEN2000
  99. 1980 X=INT(RND(7)*4)
  100. 1990 ONXGOTO2340,2410,2510
  101. 2000 X=INT(RND(7)*3)
  102. 2010 ONXGOTO2340,2410
  103. 2020 IFS<>VTHEN2060
  104. 2030 IFZ=1THEN2090
  105. 2040 Q=1
  106. 2050 GOTO2070
  107. 2060 IFW(R,S+1)<>0THEN2090
  108. 2070 X=INT(RND(8)*3)
  109. 2080 ONXGOTO2340,2510
  110. 2090 GOTO2340
  111. 2100 IFR=HTHEN2200
  112. 2110 IFW(R+1,S)<>0THEN2200
  113. 2120 IFS<>VTHEN2160
  114. 2130 IFZ=1THEN2190
  115. 2140 Q=1
  116. 2150 GOTO2170
  117. 2160 IFW(R,S+1)<>0THEN2190
  118. 2170 X=INT(RND(8)*3)
  119. 2180 ONXGOTO2410,2510
  120. 2190 GOTO2410
  121. 2200 IFS<>VTHEN2240
  122. 2210 IFZ=1THEN2260
  123. 2220 Q=1
  124. 2230 GOTO2250
  125. 2240 IFW(R,S+1)<>0THEN2260
  126. 2250 GOTO2510
  127. 2260 GOTO2710
  128. 2270 W(R-1,S)=C
  129. 2280 C=C+1
  130. 2290 V(R-1,S)=2
  131. 2300 R=R-1
  132. 2310 IFC=H*V+1THEN2720
  133. 2320 Q=0
  134. 2330 GOTO1530
  135. 2340 W(R,S-1)=C
  136. 2350 C=C+1
  137. 2360 V(R,S-1)=1
  138. 2370 S=S-1
  139. 2380 IFC=H*V+1THEN2720
  140. 2390 Q=0
  141. 2400 GOTO1530
  142. 2410 W(R+1,S)=C
  143. 2420 C=C+1
  144. 2430 IFV(R,S)=0THEN2460
  145. 2440 V(R,S)=3
  146. 2450 GOTO2470
  147. 2460 V(R,S)=2
  148. 2470 R=R+1
  149. 2480 IFC=H*V+1THEN2720
  150. 2490 Q=0
  151. 2500 GOTO1890
  152. 2510 IFQ=1THEN2610
  153. 2520 W(R,S+1)=C
  154. 2530 C=C+1
  155. 2540 IFV(R,S)=0THEN2570
  156. 2550 V(R,S)=3
  157. 2560 GOTO2580
  158. 2570 V(R,S)=1
  159. 2580 S=S+1
  160. 2590 IFC=H*V+1THEN2720
  161. 2600 GOTO1530
  162. 2610 Z=1
  163. 2620 IFV(R,S)=0THEN2660
  164. 2630 V(R,S)=3
  165. 2640 Q=0
  166. 2650 GOTO2710
  167. 2660 V(R,S)=1
  168. 2670 Q=0
  169. 2680 R=1
  170. 2690 S=1
  171. 2700 GOTO1520
  172. 2710 GOTO1430
  173. 2720 FORJ=1TOV
  174. 2730 PRINT"I";
  175. 2740 FORI=1TOH
  176. 2750 IFV(I,J)<2THEN2780
  177. 2760 PRINT"   ";
  178. 2770 GOTO2790
  179. 2780 PRINT"  I";
  180. 2790 NEXTI
  181. 2800 PRINT
  182. 2810 FORI=1TOH
  183. 2820 IFV(I,J)=0THEN2860
  184. 2830 IFV(I,J)=2THEN2860
  185. 2840 PRINT":  ";
  186. 2850 GOTO2870
  187. 2860 PRINT":--";
  188. 2870 NEXTI
  189. 2880 PRINT":"
  190. 2890 NEXTJ
  191. 2900 RESET
  192.