1000  DIM W[20,78],V[20,78],A$[10]
1010  PRINT '10'10"DO YOU NEED INSTRUCTIONS";
1020  INPUT A$[1,1]
1030  IF A$="Y" THEN 1070
1040  IF A$="N" THEN 1130
1050  PRINT '10"PLEASE TYPE YES OR NO";
1060  GOTO 1020
1070  PRINT '10'10"THIS PROGRAM WILL PRINT OUT FOR YOU A MAZE!"'7
1080  PRINT "ALL YOU ARE REQUIRED TO DO IS INPUT THE DIMENSIONS."
1090  PRINT "YOU MAY HAVE A MAZE UP TO 20 BY 20 UNITS.  BUT NOTHING"
1100  PRINT "BEYOND THAT ."'10'10
1110  PRINT '10"EACH MAZE IS DEFFERENT, AND HAS ONLY ONE WAY THROUGH"
1120  PRINT "IT."'10'10
1130  MAT W=ZER
1140  MAT V=ZER
1150  PRINT '10'10"WHAT ARE YOUR DIMENSIONS";
1160  INPUT H,V
1170  IF H <= 20 AND H=INT(H) AND V <= 20 AND V=INT(V) THEN 1200
1180  PRINT '10'10"SORRY--TRY AGAIN";
1190  GOTO 1160
1200  PRINT 
1210  IF H#1 AND V#1 THEN 1240
1220  PRINT "MEANINGLESS DIMENSIONS, TRY AGAIN";
1230  GOTO 1160
1240  PRINT '10'10'10'10'10'10'10'10'10'10'10'10
1250  Q=Z=0
1260  X=INT(RND(0)*H+1)
1270  FOR I=1 TO H
1280  IF I=X THEN 1310
1290  PRINT ":--";
1300  GOTO 1320
1310  PRINT ":  ";
1320  NEXT I
1330  PRINT ":"
1340  C=1
1350  W[X,1]=C
1360  C=C+1
1370  R=X
1380  S=1
1390  GOTO 1490
1400  IF R#H THEN 1470
1410  IF S#V THEN 1440
1420  R=S=1
1430  GOTO 1480
1440  R=1
1450  S=S+1
1460  GOTO 1480
1470  R=R+1
1480  IF W[R,S]=0 THEN 1400
1490  IF R-1=0 THEN 1850
1500  IF W[R-1,S] THEN 1850
1510  IF S-1=0 THEN 1660
1520  IF W[R,S-1]#0 THEN 1660
1530  IF R=H THEN 1570
1540  IF W[R+1,S] THEN 1570
1550  X=INT(RND(0)*3+1)
1560  GOTO X OF 2230,2300,2370
1570  IF S#V THEN 1610
1580  IF Z=1 THEN 1640
1590  Q=1
1600  GOTO 1620
1610  IF W[R,S+1] THEN 1640
1620  X=INT(RND(0)*3+1)
1630  GOTO X OF 2230,2300,2470
1640  X=INT(RND(0)*2+1)
1650  GOTO X OF 2230,2300
1660  IF R=H THEN 1770
1670  IF W[R+1,S] THEN 1770
1680  IF S#V THEN 1720
1690  IF Z=1 THEN 1750
1700  Q=1
1710  GOTO 1730
1720  IF W[R,S+1] THEN 1750
1730  X=INT(RND(0)*3+1)
1740  GOTO X OF 2230,2370,2470
1750  X=INT(RND(0)*2+1)
1760  GOTO X OF 2230,2370
1770  IF S#V THEN 1810
1780  IF Z=1 THEN 1840
1790  Q=1
1800  GOTO 1820
1810  IF W[R,S+1] THEN 1840
1820  X=INT(RND(0)*2+1)
1830  GOTO X OF 2230,2470
1840  GOTO 2230
1850  IF S-1=0 THEN 2060
1860  IF W[R,S-1] THEN 2060
1870  IF R=H THEN 1980
1880  IF W[R+1,S] THEN 1980
1890  IF S#V THEN 1930
1900  IF Z=1 THEN 1960
1910  Q=1
1920  GOTO 1940
1930  IF W[R,S+1] THEN 1960
1940  X=INT(RND(0)*3+1)
1950  GOTO X OF 2300,2370,2470
1960  X=INT(RND(0)*2+1)
1970  GOTO X OF 2300,2370
1980  IF S#V THEN 2020
1990  IF Z=1 THEN 2050
2000  Q=1
2010  GOTO 2030
2020  IF W[R,S+1] THEN 2050
2030  X=INT(RND(0)*2+1)
2040  GOTO X OF 2300,2470
2050  GOTO 2300
2060  IF R=H THEN 2160
2070  IF W[R+1,S] THEN 2160
2080  IF S#V THEN 2120
2090  IF Z=1 THEN 2150
2096  Q=1
2110  GOTO 2130
2120  IF W[R,S+1] THEN 2150
2130  X=INT(RND(0)*2+1)
2140  GOTO X OF 2370,2470
2150  GOTO 2370
2160  IF S#V THEN 2200
2170  IF Z=1 THEN 2220
2180  Q=1
2190  GOTO 2210
2200  IF W[R,S+1] THEN 2220
2210  GOTO 2470
2220  GOTO 2660
2230  W[R-1,S]=C
2240  C=C+1
2250  V[R-1,S]=2
2260  R=R-1
2270  IF C=H*V+1 THEN 2670
2280  Q=0
2290  GOTO 1490
2300  W[R,S-1]=C
2310  C=C+1
2320  V[R,S-1]=1
2330  S=S-1
2340  IF C=H*V+1 THEN 2670
2350  Q=0
2360  GOTO 1490
2370  W[R+1,S]=C
2380  C=C+1
2390  IF V[R,S]=0 THEN 2420
2400  V[R,S]=3
2410  GOTO 2430
2420  V[R,S]=2
2430  R=R+1
2440  IF C=H*V+1 THEN 2670
2450  Q=0
2460  GOTO 1850
2470  IF Q=1 THEN 2570
2480  W[R,S+1]=C
2490  C=C+1
2500  IF V[R,S]=0 THEN 2530
2510  V[R,S]=3
2520  GOTO 2540
2530  V[R,S]=1
2540  S=S+1
2550  IF C=H*V+1 THEN 2670
2560  GOTO 1490
2570  Z=1
2580  IF V[R,S]=0 THEN 2620
2590  V[R,S]=3
2600  Q=0
2610  GOTO 2660
2620  V[R,S]=1
2630  Q=0
2640  R=S=1
2650  GOTO 1480
2660  GOTO 1400
2670  FOR J=1 TO V
2680  PRINT "I";
2690  FOR I=1 TO H
2700  IF V[I,J]<2 THEN 2730
2710  PRINT "   ";
2720  GOTO 2740
2730  PRINT "  I";
2740  NEXT I
2750  PRINT 
2760  FOR I=1 TO H
2770  IF V[I,J]=0 THEN 2810
2780  IF V[I,J]=2 THEN 2810
2790  PRINT ":  ";
2800  GOTO 2820
2810  PRINT ":--";
2820  NEXT I
2830  PRINT ":"
2840  NEXT J
2850  PRINT '10'10'10'10'10'10'10'10'10'10"DO YOU WANT ANOTHER MAZE";
2860  INPUT A$[1,1]
2870  IF A$="Y" THEN 1130
2880  IF A$="N" THEN 2910
2890  PRINT "A YES OR NO WILL DO JUST FINE";
2900  GOTO 2860
2910  END 
