Last active
November 18, 2023 20:41
-
-
Save scruss/ad3ddc4a28e802444279f0615c5eca91 to your computer and use it in GitHub Desktop.
AMAZIN - by Jack Hauber. For DEC EDUSYSTEM 20 BASIC, from DEC EDU Newsletter Issue Number 4 (1972)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1 REM amazin | |
2 REM from https://archive.org/details/digital_edu_number_4/page/n1/mode/2up | |
100 RANDOMIZE | |
110 DIM W(25,103),V(25,103) | |
120 PRINT "WHAT ARE YOUR WIDTH AND LENGTH?" | |
121 INPUT H,V | |
122 PRINT | |
130 IF H<>1 THEN 150 | |
131 IF V<>1 THEN 150 | |
132 PRINT "MEANINGLESS DIMENSIONS, TRY AGAIN" | |
140 PRINT | |
141 GOTO 120 | |
150 PRINT | |
151 PRINT | |
160 LET Q=0 | |
161 LET Z=0 | |
162 LET X=INT(RND(0)*H+1) | |
163 FOR I=1 TO H | |
170 IF I=X THEN 173 | |
171 PRINT ":--"; | |
172 GOTO 180 | |
173 PRINT ": "; | |
180 NEXT I | |
190 PRINT ":" | |
191 LET C=1 | |
192 LET W(X,1)=C | |
193 LET C=C+1 | |
200 LET R=X | |
201 LET S=1 | |
202 GOTO 260 | |
210 IF R<>H THEN 240 | |
211 IF S<>V THEN 230 | |
220 LET R=1 | |
221 LET S=1 | |
222 GOTO 250 | |
230 LET R=1 | |
231 LET S=S+1 | |
232 GOTO 250 | |
240 LET R=R+1 | |
250 IF W(R,S)=0 THEN 210 | |
260 IF R-1=0 THEN 530 | |
261 IF W(R-1,S)<>0 THEN 530 | |
270 IF S-1=0 THEN 390 | |
280 IF W(R,S-1)<>0 THEN 390 | |
290 IF R=H THEN 330 | |
300 IF W(R+1,S)<>0 THEN 330 | |
310 LET X=INT(RND(0)*3+1) | |
320 IF X=1 THEN 790 | |
321 IF X=2 THEN 820 | |
323 IF X=3 THEN 860 | |
330 IF S<>V THEN 340 | |
331 IF Z=1 THEN 370 | |
332 LET Q=1 | |
333 GOTO 350 | |
340 IF W(R,S+1)<>0 THEN 370 | |
350 LET X=INT(RND(0)*3+1) | |
360 IF X=1 THEN 790 | |
361 IF X=2 THEN 820 | |
362 IF X=3 THEN 910 | |
370 LET X=INT(RND(0)*2+1) | |
380 IF X=1 THEN 790 | |
381 IF X=2 THEN 820 | |
390 IF R=H THEN 470 | |
400 IF W(R+1,S)<>0 THEN 470 | |
401 IF S<>V THEN 420 | |
410 IF Z=1 THEN 450 | |
411 LET Q=1 | |
412 GOTO 430 | |
420 IF W(R,S+1)<>0 THEN 450 | |
430 LET X=INT(RND(0)*3+1) | |
440 IF X=1 THEN 790 | |
441 IF X=2 THEN 860 | |
442 IF X=3 THEN 910 | |
450 LET X=INT(RND(0)*2+1) | |
460 IF X=1 THEN 790 | |
461 IF X=2 THEN 860 | |
470 IF S<>V THEN 490 | |
480 IF Z=1 THEN 520 | |
481 LET Q=1 | |
482 GOTO 500 | |
490 IF W(R,S+1)<>0 THEN 520 | |
500 LET X=INT(RND(0)*2+1) | |
510 IF X=1 THEN 790 | |
511 IF X=2 THEN 910 | |
520 GOTO 790 | |
530 IF S-1=0 THEN 670 | |
540 IF W(R,S-1)<>0 THEN 670 | |
541 IF R=H THEN 610 | |
542 IF W(R+1,S)<>0 THEN 610 | |
550 IF S<>V THEN 560 | |
551 IF Z=1 THEN 590 | |
552 LET Q=1 | |
553 GOTO 570 | |
560 IF W(R,S+1)<>0 THEN 590 | |
570 LET X=INT(RND(0)*3+1) | |
580 IF X=1 THEN 820 | |
581 IF X=2 THEN 860 | |
582 IF X=3 THEN 910 | |
590 LET X=INT(RND(0)*2+1) | |
600 IF X=1 THEN 820 | |
601 IF X=2 THEN 860 | |
610 IF S<>V THEN 630 | |
620 IF Z=1 THEN 660 | |
621 LET Q=1 | |
622 GOTO 640 | |
630 IF W(R,S+1)<>0 THEN 660 | |
640 LET X=INT(RND(0)*2+1) | |
650 IF X=1 THEN 820 | |
651 IF X=2 THEN 910 | |
660 GOTO 820 | |
670 IF R=H THEN 740 | |
680 IF W(R+1,S)<>0 THEN 740 | |
681 IF S<>V THEN 700 | |
690 IF Z=1 THEN 730 | |
691 LET Q=1 | |
692 GOTO 830 | |
700 IF W(R,S+1)<>0 THEN 730 | |
710 LET X=INT(RND(0)*2+1) | |
720 IF X=1 THEN 860 | |
721 IF X=2 THEN 910 | |
730 GOTO 860 | |
740 IF S<>V THEN 760 | |
750 IF Z=1 THEN 780 | |
751 LET Q=1 | |
752 GOTO 770 | |
760 IF W(R,S+1)<>0 THEN 780 | |
770 GOTO 910 | |
780 GOTO 1000 | |
790 LET W(R-1,S)=C | |
800 LET C=C+1 | |
801 LET V(R-1,S)=2 | |
802 LET R=R-1 | |
810 IF C=H*V+1 THEN 1010 | |
811 LET Q=0 | |
812 GOTO 260 | |
820 LET W(R,S-1)=C | |
830 LET C=C+1 | |
840 LET V(R,S-1)=1 | |
841 LET S=S-1 | |
842 IF C=H*V+1 THEN 1010 | |
850 LET Q=0 | |
851 GOTO 260 | |
860 LET W(R+1,S)=C | |
870 LET C=C+1 | |
871 IF V(R,S)=0 THEN 880 | |
872 LET V(R,S)=3 | |
873 GOTO 890 | |
880 LET V(R,S)=2 | |
890 LET R=R+1 | |
900 IF C=H*V+1 THEN 1010 | |
902 GOTO 530 | |
910 IF Q=1 THEN 960 | |
920 LET W(R,S+1)=C | |
921 LET C=C+1 | |
922 IF V(R,S)=0 THEN 940 | |
930 LET V(R,S)=3 | |
931 GOTO 950 | |
940 LET V(R,S)=1 | |
950 LET S=S+1 | |
951 IF C=H*V+1 THEN 1010 | |
952 GOTO 260 | |
960 LET Z=1 | |
970 IF V(R,S)=0 THEN 980 | |
971 LET V(R,S)=3 | |
972 LET Q=0 | |
973 GOTO 1000 | |
980 LET V(R,S)=1 | |
981 LET Q=0 | |
982 LET R=1 | |
990 LET S=1 | |
991 GOTO 250 | |
1000 GOTO 210 | |
1010 FOR J=1 TO V | |
1011 PRINT "I"; | |
1012 FOR I=1 TO H | |
1013 IF V(I,J)<2 THEN 1030 | |
1020 PRINT " "; | |
1021 GOTO 1040 | |
1030 PRINT " I"; | |
1040 NEXT I | |
1041 PRINT | |
1043 FOR I=1 TO H | |
1045 IF V(I,J)=0 THEN 1060 | |
1050 IF V(I,J)=2 THEN 1060 | |
1051 PRINT ": "; | |
1052 GOTO 1070 | |
1060 PRINT ":--"; | |
1070 NEXT I | |
1071 PRINT ":" | |
1072 NEXT J | |
1073 END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment