home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug003.ark / AMAZE.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  3.3 KB  |  187 lines

  1.     DIM W(25,25),V(25,25)
  2. 120    INPUT "WIDTH AND LENGTH";H,B
  3.     RANDOMIZE
  4.     PRINT
  5.     IF H<>1 THEN 150
  6.     IF B<>1 THEN 150
  7.     PRINT "GIVE ME SOMETHING I CAN WORK WITH!"
  8.     PRINT
  9.     GOTO 120
  10. 150    PRINT
  11.     FOR I=1 TO H
  12.         FOR J=1 TO B
  13.          W(I,J)=0
  14.         V(I,J)=0
  15.         NEXT J
  16.     NEXT I
  17.     PRINT:Q=0:Z=0:X=INT(RND*H+1)
  18.     FOR I=1 TO H
  19.         IF I=X THEN 173
  20.         PRINT "+--";:GOTO 180
  21. 173        PRINT "+  ";
  22. 180        NEXT I
  23.     PRINT "I"
  24.     C=1:W(X,1)=C:C=C+1:R=X:S=1
  25.     GOTO 260
  26. 210    IF R<>H THEN 240
  27.     IF S<>B THEN  230
  28.     R=1:S=1
  29.     GOTO 250
  30. 230    R=1:S=S+1
  31.     GOTO 250
  32. 240    R=R+1
  33. 250    IF W(R,S)=0 THEN 210
  34. 260    IF R-1=0 THEN 530
  35.     IF W(R-1,S)<>0 THEN 530
  36.     IF S-1=0 THEN 390
  37.     IF W(R,S-1)<>0 THEN 390
  38.     IF R=H THEN 330
  39.     IF W(R+1,S)<>0 THEN 330
  40.     X=INT(RND*3+1)
  41.     IF X=1 THEN 790
  42.     IF X=2 THEN 820
  43.     IF X=3 THEN 860
  44. 330    IF S<>B THEN 340
  45.     IF Z=1 THEN 370
  46.     Q=1
  47.     GOTO 350
  48. 340    IF W(R,S+1)<>0 THEN 370
  49. 350    X=INT(RND*3+1)
  50.     IF X=1 THEN 790
  51.     IF X=2 THEN 820
  52.     IF X=3 THEN 910
  53. 370    X=INT(RND*2+1)
  54.     IF X=1 THEN 790
  55.     IF X=2 THEN 820
  56. 390    IF R=H THEN 470
  57.     IF W(R+1,S)<>0 THEN 470
  58.     IF S<>B THEN 420
  59.     IF Z=1 THEN 450
  60.     Q=1
  61.     GOTO 430
  62. 420    IF W(R,S+1)<>0 THEN 450
  63. 430    X=INT(RND*3+1)
  64.     IF X=1 THEN 790
  65.     IF X=2 THEN 860
  66.     IF X=3 THEN 910
  67. 450    X=INT(RND*2+1)
  68.     IF X=1 THEN 790
  69.     IF X=2 THEN 860
  70. 470    IF S<>B THEN 490
  71.     IF Z=1 THEN 520
  72.     Q=1
  73.     GOTO 500
  74. 490    IF W(R,S+1)<>0 THEN 520
  75. 500    X=INT(RND*2+1)
  76.     IF X=1 THEN 790
  77.     IF X=2 THEN 910
  78. 520    GOTO 790
  79. 530    IF S-1=0 THEN 670
  80.     IF W(R,S-1)<>0 THEN 670
  81.     IF R=H THEN 610
  82.     IF W(R+1,S)<>0 THEN 610
  83.     IF S<>B THEN 560
  84.     IF Z=1 THEN 590
  85.     Q=1
  86.     GOTO 570
  87. 560    IF W(R,S+1)<>0 THEN 590
  88. 570    X=INT(RND*3+1)
  89.     IF X=1 THEN 820
  90.     IF X=2 THEN 860
  91.     IF X=3 THEN 910
  92. 590    X=INT(RND*2+1)
  93.     IF X=1 THEN 820
  94.     IF X=2 THEN 860
  95. 610    IF S<>B THEN 630
  96.     IF Z=1 THEN 660
  97.     Q=1
  98.     GOTO 640
  99. 630    IF W(R,S+1)<>0 THEN 660
  100. 640    X=INT(RND*2+1)
  101.     IF X=1 THEN 820
  102.     IF X=2 THEN 910
  103. 660    GOTO 820
  104. 670    IF R=H THEN 740
  105.     IF W(R+1,S)<>0 THEN 740
  106.     IF S<>B THEN 700
  107.     IF Z=1 THEN 730
  108.     Q=1
  109.     GOTO 830
  110. 700    IF W(R,S+1)<>0 THEN 730
  111.     X=INT(RND*2+1)
  112.     IF X=1 THEN 860
  113.     IF X=2 THEN 910
  114. 730    GOTO 860
  115. 740    IF S<>B THEN 760
  116.     IF Z=1 THEN 780
  117.     Q=1
  118.     GOTO 770
  119. 760    IF W(R,S+1)<>0 THEN 780
  120. 770    GOTO 910
  121. 780    GOTO 1000
  122. 790    W(R-1,S)=C
  123.     C=C+1:V(R-1,S)=2:R=R-1
  124.     IF C=H*B+1 THEN 1010
  125.     Q=0
  126.     GOTO 260
  127. 820    W(R,S-1)=C
  128. 830    C=C+1:V(R,S-1)=1
  129.     S=S-1
  130.     IF C=H*B+1 THEN 1010
  131.     Q=0
  132.     GOTO 260
  133. 860    W(R+1,S)=C:C=C+1
  134.     IF V(R,S)=0 THEN 880
  135.     V(R,S)=3
  136.     GOTO 890
  137. 880    V(R,S)=2
  138. 890    R=R+1
  139.     IF C=H*B+1 THEN 1010
  140.     GOTO 530
  141. 910    IF Q=1 THEN 960
  142.     W(R,S+1)=C:C=C+1
  143.     IF V(R,S)=0 THEN 940
  144.     V(R,S)=3
  145.     GOTO 950
  146. 940    V(R,S)=1
  147. 950    S=S+1
  148.     IF C=H*B+1 THEN 1010
  149.     GOTO 260
  150. 960    Z=1
  151.     IF V(R,S)=0 THEN 980
  152.     V(R,S)=3
  153.     Q=0
  154.     GOTO 1000
  155. 980    V(R,S)=1
  156.     Q=0:R=1:S=1
  157.     GOTO 250
  158. 1000    GOTO 210
  159. 1010    FOR J=1 TO B
  160.         PRINT "I";
  161.         FOR I=1 TO H
  162.             IF V(I,J)<2 THEN 1030
  163.             PRINT "   ";
  164.             GOTO 1040
  165. 1030            PRINT "  I";
  166. 1040            NEXT I
  167.         PRINT
  168.         FOR I=1 TO H
  169.             IF V(I,J)=0 THEN 1060
  170.             IF V(I,J)=2 THEN 1060
  171.             PRINT "I  ";
  172.             GOTO 1070
  173. 1060            PRINT "I--";
  174. 1070            NEXT I
  175.         PRINT "I"
  176.         NEXT J
  177.     PRINT:PRINT:PRINT:PRINT
  178. 1075    INPUT "DO YOU WANT ANOTHER ONE"; R$
  179.     IF LEFT$(R$,1)="Y" THEN 120
  180.     IF LEFT$(R$,1)<>"N" THEN 1080
  181.     PRINT "OK. I'LL BE WAITING HERE WHEN YOU FINISH WITH"
  182.     PRINT "THAT MAZE.   SO LONG."
  183.     STOP
  184. 1080    PRINT "I DON'T THINK I UNDERSTOOD THAT"
  185.     GOTO 1075
  186.     END
  187.