Source Code
0 REM % % % %D%U%N%G%E%O%N% %G%E%N%E%R%A%T%O%R% % % BY ANTHONY WILLING 3/84
4 CLS
5 FAST
7 PRINT "%0%1%2%3%4%5%6%7%8%9%0%1%2%3%4%5%6%7%8%9%0%1%2%3%4%5%6%7%8%9%0%1"
10 FOR A=SGN PI TO VAL "20"
20 PRINT "% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % "
30 NEXT A
40 FOR C=SGN PI TO 2
50 FOR A=NOT PI TO LEN STR$ PI
60 PRINT AT A,NOT PI;CHR$ (A+VAL "156")
70 IF C=2 THEN PRINT AT A+10,NOT PI;CHR$ (A+VAL "156")
75 NEXT A
76 NEXT C
78 PRINT AT 20,0;"%0"
80 DIM R$(7,5)
90 LET R$(1)="20%X30"
100 LET R$(2)="20%X40"
110 LET R$(3)="30%X50"
120 LET R$(4)="40%X60"
130 LET R$(5)="20%X20"
140 LET R$(6)="30%X30"
150 LET R$(7)="40%X40"
160 FOR Q=1 TO 7
170 PRINT AT 21,NOT PI;"HOW MANY ";R$(Q);" ROOMS?"
180 INPUT G
190 FOR B=SGN PI TO G
200 GOSUB VAL "100*Q+2000"
210 NEXT B
220 NEXT Q
230 PRINT AT 21,NOT PI;"HOW MANY PITS? (%X)"
240 INPUT G
250 FOR B=1 TO G
260 LET Z=INT (1+26*RND)
270 LET Y=INT (1+18*RND)
280 PRINT AT Y,Z;"%X"
290 NEXT B
300 PRINT AT 21,0;"PLACE YOUR LAKES (\##)%8%6% %T%O% %E%N%D"
310 INPUT M
315 IF M=86 THEN GOTO 331
320 INPUT N
322 IF M>21 OR M<1 THEN GOTO 300
324 IF N>31 OR N<1 THEN GOTO 300
329 PRINT AT M,N;"\##"
330 GOTO 300
331 PRINT AT 21,0;"PLACE YOUR WALLS (% )%8%6% %T%O% %E%N%D"
332 INPUT M
333 IF M=86 THEN GOTO 350
334 INPUT N
335 IF M>20 OR M<1 THEN GOTO 350
336 IF N>30 OR N<1 THEN GOTO 350
337 PRINT AT M,N;"% "
339 GOTO 331
350 PRINT AT 21,0;"PLACE YOUR HALLS (.)%8%6% %T%O% %E%N%D"
360 INPUT M
370 IF M=86 THEN GOTO 421
380 INPUT N
390 IF M>20 OR M<1 THEN GOTO 350
400 IF N>31 OR N<1 THEN GOTO 350
410 PRINT AT M,N;"."
420 GOTO 350
430 PRINT AT 21,0;"PLACE YOUR DOORS (%D)%8%6% %T%O% %E%N%D"
440 INPUT M
450 IF M=86 THEN GOTO 1500
460 INPUT N
470 IF M>20 OR M<1 THEN GOTO 350
480 IF N>30 OR N<1 THEN GOTO 350
490 PRINT AT M,N;"%D"
500 GOTO 430
\n1500 PRINT AT 21,0;"ENTER ""COPY"" TO COPY TO PRINTER"
\n1510 INPUT G$
\n1520 IF G$="COPY" THEN COPY
\n1530 STOP
\n2000 STOP
\n2100 LET Z=INT (SGN PI+VAL "28"*RND)
\n2110 LET Y=INT (SGN PI+VAL "18"*RND)
\n2120 PRINT AT Y,Z;"..."
\n2130 PRINT AT Y+1,Z;"..."
\n2140 RETURN
\n2200 LET Z=INT (SGN PI+VAL "26"*RND)
\n2210 LET Y=INT (SGN PI+VAL "18"*RND)
\n2220 PRINT AT Y,Z;"....."
\n2230 PRINT AT Y+SGN PI,Z;"....."
\n2240 RETURN
\n2300 LET Z=INT (SGN PI+VAL "26"*RND)
\n2310 LET Y=INT (SGN PI+VAL "17"*RND)
\n2320 PRINT AT Y,Z;"....."
\n2330 PRINT AT Y+SGN PI,Z;"....."
\n2340 PRINT AT Y+2,Z;"....."
\n2350 RETURN
\n2400 LET Z=INT (SGN PI+VAL "25"*RND)
\n2410 LET Y=INT (SGN PI+VAL "16"*RND)
\n2420 PRINT AT Y,Z;"......"
\n2430 PRINT AT Y+1,Z;"......"
\n2440 PRINT AT Y+2,Z;"......"
\n2450 PRINT AT Y+3,Z;"......"
\n2460 RETURN
\n2500 LET Z=INT (SGN PI+VAL "29"*RND)
\n2510 LET Y=INT (SGN PI+VAL "18"*RND)
\n2520 PRINT AT Y,Z;".."
\n2530 PRINT AT Y+SGN PI,Z;".."
\n2540 RETURN
\n2600 LET Z=INT (SGN PI+VAL "28"*RND)
\n2610 LET Y=INT (SGN PI+VAL "17"*RND)
\n2620 PRINT AT Y,Z;"..."
\n2630 PRINT AT Y+SGN PI,Z;"..."
\n2640 PRINT AT Y+2,Z;"..."
\n2650 RETURN
\n2700 LET Z=INT (SGN PI+VAL "27"*RND)
\n2710 LET Y=INT (SGN PI+VAL "16"*RND)
\n2720 PRINT AT Y,Z;"...."
\n2730 PRINT AT Y+SGN PI,Z;"...."
\n2740 PRINT AT Y+2,Z;"...."
\n2750 PRINT AT Y+3,Z;"...."
\n2760 RETURN
\n2800 STOP
\n2810 CLEAR
\n2820 SAVE "1020%6"
\n2830 RUN