Random game
Random game
Random demo
Short description
			
The player character moves around a randomly generated dungeon, collecting gold (which has no use) and fighting monsters of various strength. The monsters are represented by numbers which show how many hit points they have. The strength of a monster's attacks is proportional to its health. The player character can collect healing potions to restore hit points and scrolls that increase maximum health, as well as more powerful weapons that increase the maximum damage. However, monsters can steal items from the ground. Each dungeon level has a staircase to the lower level, where more powerful monsters and weapons can be found. The goal is to get to level 8 of the dungeon. Link to description source
Roguelike Roguelike Roguelike Roguelike Roguelike Roguelike Roguelike Roguelike Roguelike
Listing 1
5 GRAPHICS 18:​REPEAT:​POSITION 10,​1:​PRINT #6,​"roguelike - 10 LINES OF turbo basic xl   ":​UNTIL STRIG(0)=0:​DIM T$(20),​MX(50),​MY(50):​T$="DOK_nopqrst"
10 GRAPHICS 17:​SM=DPEEK(88):​HP=20:​HPM=20:​LEV=0:​WPN=1:​GOLD=0
20 LEV=LEV+1:​FOR Y=0 TO 19:​FOR X=0 TO 19:​POKE SM+Y*20+X,​131:​NEXT X:​NEXT Y:​SETCOLOR 2,​LEV*3,​3:​X=10:​Y=10:​PX=X:​PY=Y:​K=0:​M=0:​IF LEV=8:​POSITION 10,​0:​PRINT #6,​"YOU WIN!":​REPEAT:​UNTIL STRIG(0)=0
25 GOTO 10:​ENDIF:​FOR C=0 TO 20:​I=RAND(18)+1:​J=RAND(18)+1:​REPEAT:​K=K+1:​V=14:​IF (K MOD 15)=0:​V=ASC(T$(RAND(6+LEV)+1)):​ENDIF:​P=SM+Y*20+X:​D=PEEK(P):​IF D=131:​POKE P,​V:​IF V>208:​M=M+1:​MX(M)=X
30 MY(M)=Y:​ENDIF:​ENDIF:​IF RAND(2):​X=X+((X<I)-(X>I)):​ELSE:​Y=Y+((Y<J)-(Y>J)):​ENDIF:​UNTIL (X=I AND Y=J):​NEXT C:​POKE SM+Y*20+X,​30
200 POKE SM+PY*20+PX,​96:​POSITION 10,​20:​PRINT #6,​"level ";LEV;" weapon ";WPN;" hp ";HP;"/";HPM;" gold ";GOLD;" ":​IF HP<1:​POSITION 10,​0:​PRINT #6,​"GAME OVER!":​REPEAT:​UNTIL STRIG(0)=0:​GOTO 10:​ENDIF:​REPEAT:​UNTIL STICK(0)<>15:​S=STICK(0)
205 V=(S=13)-(S=14):​NY=PY+V:​V=(S=7)-(S=11):​NX=PX+V:​C=PEEK(SM+NY*20+NX):​IF C>208:​SOUND 0,​100+(209-C)*10,​10,​1:​R=C-RAND(WPN)-1:​IF R<209:​V=ASC(T$(RAND(4)+1)):​ELSE:​V=R:​ENDIF
206 POKE SM+NY*20+NX,​V:​C=131:​ENDIF:​IF C<>131:​POKE SM+PY*20+PX,​14:​PY=NY:​PX=NX:​POKE SM+PY*20+PX,​96:​ENDIF:​R=RAND(LEV)+1:​IF C=95:​HPM=HPM+R:​ENDIF:​IF C=68:​GOLD=GOLD+R:​ENDIF:​IF C=79:​WPN=R:​ENDIF:​IF C=75:​HP=HP+5:​IF HP>HPM:​HP=HPM:​ENDIF:​ENDIF
210 IF C=30:​GOTO 20:​ENDIF:​FOR I=1 TO M:​OMX=MX(I):​OMY=MY(I):​NMX=OMX:​NMY=OMY:​O=SM+OMY*20+OMX:​D=PEEK(O):​IF D>208:​IF RAND(2):​NMX=OMX+((OMX<PX)-(OMX>PX)):​ELSE:​NMY=OMY+((OMY<PY)-(OMY>PY)):​ENDIF:​P=SM+NMY*20+NMX:​E=PEEK(P):​IF E=96:​HP=HP-RAND(D-208)-1
220 SOUND 0,​240,​10,​3:​ENDIF:​IF E=14 OR E=79 OR E=68 OR E=75 OR E=95:​MX(I)=NMX:​MY(I)=NMY:​POKE P,​D:​POKE O,​14:​IF E<>14:​SOUND 0,​200,​8,​3:​ENDIF:​ENDIF:​ENDIF:​NEXT I:​PAUSE 1:​SOUND 0,​0,​0,​0:​GOTO 200	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!