Dungeon Generator

Developer(s): Tony Willing
Date: 198x
Type: Program
Platform(s): TS 1000

Appears on

Assembled by Tim Ward from many sources. Contains programs 10176 – 10210.

Gallery

Dungeon Generator

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
1500 PRINT AT 21,0;"ENTER ""COPY"" TO COPY TO PRINTER"
1510 INPUT G$
1520 IF G$="COPY" THEN COPY 
1530 STOP 
2000 STOP 
2100 LET Z=INT (SGN PI+VAL "28"*RND)
2110 LET Y=INT (SGN PI+VAL "18"*RND)
2120 PRINT AT Y,Z;"..."
2130 PRINT AT Y+1,Z;"..."
2140 RETURN 
2200 LET Z=INT (SGN PI+VAL "26"*RND)
2210 LET Y=INT (SGN PI+VAL "18"*RND)
2220 PRINT AT Y,Z;"....."
2230 PRINT AT Y+SGN PI,Z;"....."
2240 RETURN 
2300 LET Z=INT (SGN PI+VAL "26"*RND)
2310 LET Y=INT (SGN PI+VAL "17"*RND)
2320 PRINT AT Y,Z;"....."
2330 PRINT AT Y+SGN PI,Z;"....."
2340 PRINT AT Y+2,Z;"....."
2350 RETURN 
2400 LET Z=INT (SGN PI+VAL "25"*RND)
2410 LET Y=INT (SGN PI+VAL "16"*RND)
2420 PRINT AT Y,Z;"......"
2430 PRINT AT Y+1,Z;"......"
2440 PRINT AT Y+2,Z;"......"
2450 PRINT AT Y+3,Z;"......"
2460 RETURN 
2500 LET Z=INT (SGN PI+VAL "29"*RND)
2510 LET Y=INT (SGN PI+VAL "18"*RND)
2520 PRINT AT Y,Z;".."
2530 PRINT AT Y+SGN PI,Z;".."
2540 RETURN 
2600 LET Z=INT (SGN PI+VAL "28"*RND)
2610 LET Y=INT (SGN PI+VAL "17"*RND)
2620 PRINT AT Y,Z;"..."
2630 PRINT AT Y+SGN PI,Z;"..."
2640 PRINT AT Y+2,Z;"..."
2650 RETURN 
2700 LET Z=INT (SGN PI+VAL "27"*RND)
2710 LET Y=INT (SGN PI+VAL "16"*RND)
2720 PRINT AT Y,Z;"...."
2730 PRINT AT Y+SGN PI,Z;"...."
2740 PRINT AT Y+2,Z;"...."
2750 PRINT AT Y+3,Z;"...."
2760 RETURN 
2800 STOP 
2810 CLEAR 
2820 SAVE  "1020%6"
2830 RUN 
Scroll to Top