home *** CD-ROM | disk | FTP | other *** search
- DIM W(25,25),V(25,25)
- 120 INPUT "WIDTH AND LENGTH";H,B
- RANDOMIZE
- PRINT
- IF H<>1 THEN 150
- IF B<>1 THEN 150
- PRINT "GIVE ME SOMETHING I CAN WORK WITH!"
- PRINT
- GOTO 120
- 150 PRINT
- FOR I=1 TO H
- FOR J=1 TO B
- W(I,J)=0
- V(I,J)=0
- NEXT J
- NEXT I
- PRINT:Q=0:Z=0:X=INT(RND*H+1)
- FOR I=1 TO H
- IF I=X THEN 173
- PRINT "+--";:GOTO 180
- 173 PRINT "+ ";
- 180 NEXT I
- PRINT "I"
- C=1:W(X,1)=C:C=C+1:R=X:S=1
- GOTO 260
- 210 IF R<>H THEN 240
- IF S<>B THEN 230
- R=1:S=1
- GOTO 250
- 230 R=1:S=S+1
- GOTO 250
- 240 R=R+1
- 250 IF W(R,S)=0 THEN 210
- 260 IF R-1=0 THEN 530
- IF W(R-1,S)<>0 THEN 530
- IF S-1=0 THEN 390
- IF W(R,S-1)<>0 THEN 390
- IF R=H THEN 330
- IF W(R+1,S)<>0 THEN 330
- X=INT(RND*3+1)
- IF X=1 THEN 790
- IF X=2 THEN 820
- IF X=3 THEN 860
- 330 IF S<>B THEN 340
- IF Z=1 THEN 370
- Q=1
- GOTO 350
- 340 IF W(R,S+1)<>0 THEN 370
- 350 X=INT(RND*3+1)
- IF X=1 THEN 790
- IF X=2 THEN 820
- IF X=3 THEN 910
- 370 X=INT(RND*2+1)
- IF X=1 THEN 790
- IF X=2 THEN 820
- 390 IF R=H THEN 470
- IF W(R+1,S)<>0 THEN 470
- IF S<>B THEN 420
- IF Z=1 THEN 450
- Q=1
- GOTO 430
- 420 IF W(R,S+1)<>0 THEN 450
- 430 X=INT(RND*3+1)
- IF X=1 THEN 790
- IF X=2 THEN 860
- IF X=3 THEN 910
- 450 X=INT(RND*2+1)
- IF X=1 THEN 790
- IF X=2 THEN 860
- 470 IF S<>B THEN 490
- IF Z=1 THEN 520
- Q=1
- GOTO 500
- 490 IF W(R,S+1)<>0 THEN 520
- 500 X=INT(RND*2+1)
- IF X=1 THEN 790
- IF X=2 THEN 910
- 520 GOTO 790
- 530 IF S-1=0 THEN 670
- IF W(R,S-1)<>0 THEN 670
- IF R=H THEN 610
- IF W(R+1,S)<>0 THEN 610
- IF S<>B THEN 560
- IF Z=1 THEN 590
- Q=1
- GOTO 570
- 560 IF W(R,S+1)<>0 THEN 590
- 570 X=INT(RND*3+1)
- IF X=1 THEN 820
- IF X=2 THEN 860
- IF X=3 THEN 910
- 590 X=INT(RND*2+1)
- IF X=1 THEN 820
- IF X=2 THEN 860
- 610 IF S<>B THEN 630
- IF Z=1 THEN 660
- Q=1
- GOTO 640
- 630 IF W(R,S+1)<>0 THEN 660
- 640 X=INT(RND*2+1)
- IF X=1 THEN 820
- IF X=2 THEN 910
- 660 GOTO 820
- 670 IF R=H THEN 740
- IF W(R+1,S)<>0 THEN 740
- IF S<>B THEN 700
- IF Z=1 THEN 730
- Q=1
- GOTO 830
- 700 IF W(R,S+1)<>0 THEN 730
- X=INT(RND*2+1)
- IF X=1 THEN 860
- IF X=2 THEN 910
- 730 GOTO 860
- 740 IF S<>B THEN 760
- IF Z=1 THEN 780
- Q=1
- GOTO 770
- 760 IF W(R,S+1)<>0 THEN 780
- 770 GOTO 910
- 780 GOTO 1000
- 790 W(R-1,S)=C
- C=C+1:V(R-1,S)=2:R=R-1
- IF C=H*B+1 THEN 1010
- Q=0
- GOTO 260
- 820 W(R,S-1)=C
- 830 C=C+1:V(R,S-1)=1
- S=S-1
- IF C=H*B+1 THEN 1010
- Q=0
- GOTO 260
- 860 W(R+1,S)=C:C=C+1
- IF V(R,S)=0 THEN 880
- V(R,S)=3
- GOTO 890
- 880 V(R,S)=2
- 890 R=R+1
- IF C=H*B+1 THEN 1010
- GOTO 530
- 910 IF Q=1 THEN 960
- W(R,S+1)=C:C=C+1
- IF V(R,S)=0 THEN 940
- V(R,S)=3
- GOTO 950
- 940 V(R,S)=1
- 950 S=S+1
- IF C=H*B+1 THEN 1010
- GOTO 260
- 960 Z=1
- IF V(R,S)=0 THEN 980
- V(R,S)=3
- Q=0
- GOTO 1000
- 980 V(R,S)=1
- Q=0:R=1:S=1
- GOTO 250
- 1000 GOTO 210
- 1010 FOR J=1 TO B
- PRINT "I";
- FOR I=1 TO H
- IF V(I,J)<2 THEN 1030
- PRINT " ";
- GOTO 1040
- 1030 PRINT " I";
- 1040 NEXT I
- PRINT
- FOR I=1 TO H
- IF V(I,J)=0 THEN 1060
- IF V(I,J)=2 THEN 1060
- PRINT "I ";
- GOTO 1070
- 1060 PRINT "I--";
- 1070 NEXT I
- PRINT "I"
- NEXT J
- PRINT:PRINT:PRINT:PRINT
- 1075 INPUT "DO YOU WANT ANOTHER ONE"; R$
- IF LEFT$(R$,1)="Y" THEN 120
- IF LEFT$(R$,1)<>"N" THEN 1080
- PRINT "OK. I'LL BE WAITING HERE WHEN YOU FINISH WITH"
- PRINT "THAT MAZE. SO LONG."
- STOP
- 1080 PRINT "I DON'T THINK I UNDERSTOOD THAT"
- GOTO 1075
- END
-