Files
tsvm/assets/disk0/home/basic/amazing.bas
2020-12-25 21:31:45 +09:00

139 lines
3.3 KiB
QBasic

1 OPTIONBASE 1
10 PRINT SPC(28);"AMAZING PROGRAM"
20 PRINT SPC(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
30 PRINT:PRINT:PRINT
100 PRINT "WHAT ARE YOUR WIDTH";:INPUT H
102 PRINT "WHAT ARE YOUR LENGTH";:INPUT V
105 IF H<>1 AND V<>1 THEN GOTO 110
106 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN.":GOTO 100
110 WS=DIM(H,V):VS=DIM(H,V)
120 PRINT:PRINT:PRINT:PRINT
160 Q=0:Z=0:X=INT(RND(1)*H+1)
165 FOR I=1 TO H
170 IF I==X THEN GOTO 173
171 PRINT ".--";
172 GOTO 175
173 PRINT ". ";
180 NEXT
190 PRINT "."
195 C=1:WS(X,1)=C:C=C+1
200 R=X:S=1:GOTO 260
210 IF R<>H THEN GOTO 240
215 IF S<>V THEN GOTO 230
220 R=1:S=1
222 GOTO 250
230 R=1:S=S+1:GOTO 250
240 R=R+1
250 IF WS(R,S)==0 THEN GOTO 210
260 IF R-1==0 THEN GOTO 530
265 IF WS(R-1,S)<>0 THEN GOTO 530
270 IF S-1==0 THEN GOTO 390
280 IF WS(R,S-1)<>0 THEN GOTO 390
290 IF R==H THEN GOTO 330
300 IF WS(R+1,S)<>0 THEN GOTO 330
310 X=INT(RND(1)*3+1)
320 ON X GOTO 790,820,860
334 IF Z==1 THEN GOTO 370
338 Q=1:GOTO 350
340 IF WS(R,S+1)<>0 THEN GOTO 370
350 X=INT(RND(1)*3+1)
360 ON X GOTO 790,820,910
370 X=INT(RND(1)*2+1)
380 ON X GOTO 790,820
390 IF R==H THEN GOTO 470
400 IF WS(R+1,S)<>0 THEN GOTO 470
405 IF S<>V THEN GOTO 420
410 IF Z==1 THEN GOTO 450
415 Q=1:GOTO 430
420 IF WS(R,S+1)<>0 THEN GOTO 450
430 X=INT(RND(1)*3+1)
440 ON X GOTO 790,860,910
450 X=INT(RND(1)*2+1)
460 ON X GOTO 790,860
470 IF S<>V THEN GOTO 490
480 IF Z==1 THEN GOTO 520
485 Q=1:GOTO 500
490 IF WS(R,S+1)<>0 THEN GOTO 520
500 X=INT(RND(1)*2+1)
510 ON X GOTO 790,910
520 GOTO 790
530 IF S-1==0 THEN GOTO 670
540 IF WS(R,S-1)<>0 THEN GOTO 670
545 IF R==H THEN GOTO 610
547 IF WS(R+1,S)<>0 THEN GOTO 610
550 IF S<>V THEN GOTO 560
552 IF Z==1 THEN GOTO 590
554 Q=1:GOTO 570
560 IF WS(R,S+1)<>0 THEN GOTO 590
570 X=INT(RND(1)*3+1)
580 ON X GOTO 820,860,910
590 X=INT(RND(1)*2+1)
600 ON X GOTO 820,860
610 IF S<>V THEN GOTO 630
620 IF Z==1 THEN GOTO 660
625 Q=1:GOTO 640
630 IF WS(R,S+1)<>0 THEN GOTO 660
640 X=INT(RND(1)*2+1)
650 ON X GOTO 820,910
660 GOTO 820
670 IF R==H THEN GOTO 740
680 IF WS(R+1,S)<>0 THEN GOTO 740
685 IF S<>V THEN GOTO 700
690 IF Z==1 THEN GOTO 730
695 Q=1:GOTO 830
700 IF WS(R,S+1)<>0 THEN GOTO 730
710 X=INT(RND(1)*2+1)
720 ON X GOTO 860,910
730 GOTO 860
740 IF S<>V THEN GOTO 760
750 IF Z==1 THEN GOTO 780
755 Q=1:GOTO 770
760 IF WS(R,S+1)<>0 THEN GOTO 780
770 GOTO 910
780 GOTO 1000
790 WS(R-1,S)=C
800 C=C+1:VS(R-1,S)=2:R=R-1
810 IF C==H*V+1 THEN GOTO 1010
815 Q=0:GOTO 260
820 WS(R,S-1)=C
830 C=C+1
840 VS(R,S-1)=1:S=S-1:IF C==H*V+1 THEN GOTO 1010
850 Q=0:GOTO 260
860 WS(R+1,S)=C
870 C=C+1:IF VS(R,S)==0 THEN GOTO 880
875 VS(R,S)=3:GOTO 890
880 VS(R,S)=2
890 R=R+1
900 IF C==H*V+1 THEN GOTO 1010
905 GOTO 530
910 IF Q==1 THEN GOTO 960
920 WS(R,S+1)=C:C=C+1:IF VS(R,S)==0 THEN GOTO 940
930 VS(R,S)=3:GOTO 950
940 VS(R,S)=1
950 S=S+1:IF C==H*V+1 THEN GOTO 1010
955 GOTO 260
960 Z=1
970 IF VS(R,S)==0 THEN GOTO 980
975 VS(R,S)=3:Q=0:GOTO 1000
980 VS(R,S)=1:Q=0:R=1:S=1:GOTO 250
1000 GOTO 210
1010 FOR J=1 TO V
1011 PRINT "|";
1012 FOR I=1 TO H
1013 IF VS(I,J)<2 THEN GOTO 1030
1020 PRINT " ";
1021 GOTO 1040
1030 PRINT " |";
1040 NEXT
1041 PRINT
1043 FOR I=1 TO H
1045 IF VS(I,J)==0 THEN GOTO 1060
1050 IF VS(I,J)==2 THEN GOTO 1060
1051 PRINT ": ";
1052 GOTO 1070
1060 PRINT ":--";
1070 NEXT
1071 PRINT "."
1072 NEXT
1073 END