mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-03-07 19:51:51 +09:00
139 lines
3.3 KiB
QBasic
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
|