basic: amazing.bas is working

This commit is contained in:
minjaesong
2020-12-03 19:03:14 +09:00
parent 6adbebc87f
commit 743837bd86
2 changed files with 38 additions and 38 deletions

View File

@@ -12,8 +12,8 @@
105 IF H<>1 AND V<>1 THEN GOTO 110
106 PRINT "MEANINGLESS DIMENSIONS. TRY AGAIN."
107 GOTO 100
110 W=DIM(H,V)
111 V=DIM(H,V)
110 WS=DIM(H,V)
111 VS=DIM(H,V)
120 PRINT
130 PRINT
140 PRINT
@@ -29,7 +29,7 @@
180 NEXT
190 PRINT "."
195 C=1
196 W(X,1)=C
196 WS(X,1)=C
197 C=C+1
200 R=X
201 S=1
@@ -43,13 +43,13 @@
231 S=S+1
232 GOTO 250
240 R=R+1
250 IF W(R,S)==0 THEN GOTO 210
250 IF WS(R,S)==0 THEN GOTO 210
260 IF R-1==0 THEN GOTO 530
265 IF W(R-1,S)<>0 THEN GOTO 530
265 IF WS(R-1,S)<>0 THEN GOTO 530
270 IF S-1==0 THEN GOTO 390
280 IF W(R,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 W(R+1,S)<>0 THEN GOTO 330
300 IF WS(R+1,S)<>0 THEN GOTO 330
310 X=INT(RND(1)*3+1)
320 REM ON X GOTO 790,820,860
321 IF X==1 THEN GOTO 790
@@ -59,7 +59,7 @@
334 IF Z==1 THEN GOTO 370
338 Q=1
339 GOTO 350
340 IF W(R,S+1)<>0 THEN GOTO 370
340 IF WS(R,S+1)<>0 THEN GOTO 370
350 X=INT(RND(1)*3+1)
360 REM ON X GOTO 790,820,910
361 IF X==1 THEN GOTO 790
@@ -68,12 +68,12 @@
370 X=INT(RND(1)*2+1)
380 REM ON X GOTO 790,820
390 IF R==H THEN GOTO 470
400 IF W(R+1,S)<>0 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
416 GOTO 430
420 IF W(R,S+1)<>0 THEN GOTO 450
420 IF WS(R,S+1)<>0 THEN GOTO 450
430 X=INT(RND(1)*3+1)
440 REM ON X GOTO 790,860,910
441 IF X==1 THEN GOTO 790
@@ -85,21 +85,21 @@
480 IF Z==1 THEN GOTO 520
485 Q=1
486 GOTO 500
490 IF W(R,S+1)<>0 THEN GOTO 520
490 IF WS(R,S+1)<>0 THEN GOTO 520
500 X=INT(RND(1)*2+1)
510 REM ON X GOTO 790,910
511 IF X==1 THEN GOTO 790
512 IF X==2 THEN GOTO 910
520 GOTO 790
530 IF S-1==0 THEN GOTO 670
540 IF W(R,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 W(R+1,S)<>0 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
555 GOTO 570
560 IF W(R,S+1)<>0 THEN GOTO 590
560 IF WS(R,S+1)<>0 THEN GOTO 590
570 X=INT(RND(1)*3+1)
580 REM ON X GOTO 820,860,910
581 IF X==0 THEN GOTO 820
@@ -113,19 +113,19 @@
620 IF Z==1 THEN GOTO 660
625 Q=1
626 GOTO 640
630 IF W(R,S+1)<>0 THEN GOTO 660
630 IF WS(R,S+1)<>0 THEN GOTO 660
640 X=INT(RND(1)*2+1)
650 REM ON X GOTO 820,910
651 IF X==0 THEN GOTO 820
652 IF X==1 THEN GOTO 910
660 GOTO 820
670 IF R==H THEN GOTO 740
680 IF W(R+1,S)<>0 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
696 GOTO 830
700 IF W(R,S+1)<>0 THEN GOTO 730
700 IF WS(R,S+1)<>0 THEN GOTO 730
710 X=INT(RND(1)*2+1)
720 REM ON X GOTO 860,910
721 IF X==0 THEN GOTO 860
@@ -135,48 +135,48 @@
750 IF Z==1 THEN GOTO 780
755 Q=1
756 GOTO 770
760 IF W(R,S+1)<>0 THEN GOTO 780
760 IF WS(R,S+1)<>0 THEN GOTO 780
770 GOTO 910
780 GOTO 1000
790 W(R-1,S)=C
790 WS(R-1,S)=C
800 C=C+1
801 V(R-1,S)=2
801 VS(R-1,S)=2
802 R=R-1
810 IF C==H*V+1 THEN GOTO 1010
815 Q=0
816 GOTO 260
820 W(R,S-1)=C
820 WS(R,S-1)=C
830 C=C+1
840 V(R,S-1)=1
840 VS(R,S-1)=1
841 S=S-1
842 IF C==H*V+1 THEN GOTO 1010
850 Q=0
851 GOTO 260
860 W(R+1,S)=C
860 WS(R+1,S)=C
870 C=C+1
871 IF V(R,S)==0 THEN GOTO 880
875 V(R,S)=3
871 IF VS(R,S)==0 THEN GOTO 880
875 VS(R,S)=3
876 GOTO 890
880 V(R,S)=2
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 W(R,S+1)=C
920 WS(R,S+1)=C
921 C=C+1
922 IF V(R,S)==0 THEN GOTO 940
930 V(R,S)=3
922 IF VS(R,S)==0 THEN GOTO 940
930 VS(R,S)=3
931 GOTO 950
940 V(R,S)=1
940 VS(R,S)=1
950 S=S+1
951 IF C==H*V+1 THEN GOTO 1010
955 GOTO 260
960 Z=1
970 IF V(R,S)==0 THEN GOTO 980
975 V(R,S)=3
970 IF VS(R,S)==0 THEN GOTO 980
975 VS(R,S)=3
976 Q=0
977 GOTO 1000
980 V(R,S)=1
980 VS(R,S)=1
981 Q=0
982 R=1
983 S=1
@@ -185,15 +185,15 @@
1010 FOR J=1 TO V
1011 PRINT "I";
1012 FOR I=1 TO H
1013 IF V(I,J)<2 THEN GOTO 1030
1013 IF VS(I,J)<2 THEN GOTO 1030
1020 PRINT " ";
1021 GOTO 1040
1030 PRINT " I";
1040 NEXT
1041 PRINT
1043 FOR I=1 TO H
1045 IF V(I,J)==0 THEN GOTO 1060
1050 IF V(I,J)==2 THEN GOTO 1060
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 ":--";

View File

@@ -249,10 +249,10 @@ let twoArgNum = function(lnum, args, action) {
if (args.length != 2) throw lang.syntaxfehler(lnum, args.length+lang.aG);
var rsvArg0 = resolve(args[0]);
if (rsvArg0 === undefined) throw lang.refError(lnum, args[0]);
if (isNaN(rsvArg0)) throw lang.illegalType(lnum, args[0]);
if (isNaN(rsvArg0)) throw lang.illegalType(lnum, "LH:"+Object.entries(args[0]));
var rsvArg1 = resolve(args[1]);
if (rsvArg1 === undefined) throw lang.refError(lnum, args[1]);
if (isNaN(rsvArg1)) throw lang.illegalType(lnum, args[1]);
if (isNaN(rsvArg1)) throw lang.illegalType(lnum, "RH:"+Object.entries(args[1]));
return action(rsvArg0, rsvArg1);
}
let threeArg = function(lnum, args, action) {