git @ Cat's Eye Technologies Dungeons-of-Ekileugor / 07cdc25
Even more reasonable levels: rooms do not touch (FULL only.) catseye 12 years ago
2 changed file(s) with 21 addition(s) and 13 deletion(s). Raw diff Collapse all Expand all
99 some amount of memory expansion, and a MINI version, which runs on an
1010 unexpanded VIC-20. With the MINI version, you get:
1111
12 * random generation of reasonable dungeon levels, with rooms and passages
13 * the contents of rooms and passages are not visible until entered
12 * random generation of somewhat reasonable dungeon levels, with rooms and
13 passages
14 * the contents of rooms are not visible until entered
1415 * levels populated with monsters, treasure, and stairwells
15 * (possibly more, if I can squeeze it in)
16 * (possibly a tiny bit more, if I can squeeze it in)
1617
17 With the FULL version, you will, one day, get:
18 With the FULL version, you get:
1819
20 * more reasonable dungeon level generation
21
22 And you may one day get:
23
24 * progressively more difficult dungeon levels
1925 * more than one kind of monster
2026 * character generation with three stats (strength, intelligence, and
2127 dexterity) and hit points
2626
2727 rem dm : damage done during combat
2828
29 #ifdef FULL
2930 rem sg : strength
3031 rem in : intelligence
3132 rem de : dexterity
33 rem pt : health potions
34 #endif
3235 rem hp : hit points
3336 rem mh : max hit points
3437 rem au : gold
35 rem pt : health potions
3638 rem dl : dungeon level
3739
3840 rem r%(#,p) : room matrix: first dimension is room number, second:
148150 1010 ifsb=1thenprint"gold"au"{left} ";
149151
150152 #ifdef FULL
151
152153 1012 ifsb=2thenprint"potion"pt"{left} ";
153154 1015 ifsb=3thenprint"str"sg"{left} int"in"{left} dex"de"{left} ";
154
155155 #endif
156156
157157 1085 fori=pos(0)to21:print" ";:next
241241 7060 fori=0tomm:m%(i,3)=0:next
242242
243243 rem ... then make some rooms
244 rem ... (this part isn't as clever as it should be)
245244
246245 7100 fori=0to4
247 7110 r%(i,2)=int(rnd(1)*6)+3:r%(i,3)=int(rnd(1)*6)+3
248 7120 r%(i,0)=int(rnd(1)*(20-r%(i,2)))+1:r%(i,1)=int(rnd(1)*(20-r%(i,3)))+1
246 7110 r%(i,2)=int(rnd(1)*3)*2+2:r%(i,3)=int(rnd(1)*3)*2+2
247 7120 r%(i,0)=int(rnd(1)*(20-r%(i,2))/2)*2+1
248 7125 r%(i,1)=int(rnd(1)*(20-r%(i,3))/2)*2+1
249249
250250 rem ... if this is the first room, no checking or tunnel is needed.
251251
320320
321321 rem init
322322
323 8000 dim m%(9,3),r%(4,3)
324 8005 sg=10:in=11:de=12:mh=31:hp=mh:dl=1:mm=9
325 8010 sc=7680:cm=38400
323 8000 dimm%(9,3),r%(4,3)
324 8005 sc=7680:cm=38400:mh=31:hp=mh:dl=1:mm=9
325 #ifdef FULL
326 8010 sg=10:in=11:de=12
327 #endif
326328 8012 print"{clr}"
327329 8015 m$="hit any key to begin":gosub4000:gosub4000
328330 rem ... tricky! tricky! tail call!