A program to generate a random dungeon level and populate it

Got code snippets to share? This is the place for you!
Brani di codice da condividere? Questo è il posto per te!
Avez-vous des extraits de code à partager ? C'est l'endroit pour vous !
Post Reply
jjarrell
Posts: 36
Joined: Tue Jan 28, 2025 5:35 pm

A program to generate a random dungeon level and populate it

Post by jjarrell »

Code: Select all

REM ********************************************
REM A PROGRAM TO GENERATE A RANDOM DUNGEON LEVEL
REM AND POPULATE THE ROOMS.
REM BY JJARRELL
REM ********************************************
REM SET MAP BOUNDS
DIM map(11,11)
CLS
REM GENERATE RANDOM SEED
RANDOMIZE TIMER
REM SET PLAYER X,Y POSITION
playerX=5
playerY=5
PRINT "LOADING LEVEL"
REM LOOP TO POPULATE ROOMS
FOR x=1 TO 10
	PRINT "=";
	FOR y=1 TO 10
		map(x,y)=RND(6)+1
	NEXT
NEXT
REM MAKE THE STARTING POINT AN EMPTY ROOM
map(5,5)=1
playerInput:
	CLS
	REM GOSUB TO THE VALUE OF THE MAP ARRAY
	ON map(playerX,playerY) GOSUB emptyRoom,emptyRoom,monster,trap,cave,treasure
	PRINT
	REM GET PLAYER MOVEMENT DIRECTION
	PRINT "WHICH DIRECTION(N,S,E,W)?"
	playerDir$=INPUT$(1)
	playerDir$=UPPER(playerDir$)
	REM RESET THE WALL FLAG AND CHECK FOR WALLS
	wallFlag=0
	IF playerDir$="N" THEN
		playerY=playerY-1
	ENDIF
	IF playerDir$="S" THEN
		playerY=playerY+1
	ENDIF
	IF playerDir$="E" THEN
		playerX=playerX-1
	ENDIF
	IF playerDir$="W" THEN
		playerX=playerX+1
	ENDIF
	IF playerX<1 THEN
		playerX=1
		wallFlag=1
	ENDIF
	IF playerX>10 THEN
		playerX=10
		wallFlag=1
	ENDIF	
	IF playerY<1 THEN
		playerY=1
		wallFlag=1
	ENDIF	
	IF playerY>10 THEN
		playerY=10
		wallFlag=1
	ENDIF
	IF wallFlag=1 THEN
		PRINT "THERE IS A WALL IN THAT DIRECTION"
		GOSUB wait
	ENDIF
	GOTO playerInput
emptyRoom:
	PRINT "YOU ARE IN A DAMP EMPTY CHAMBER."
	RETURN
monster:
	PRINT "THERE IS A MONSTER IN THIS ROOM."
	RETURN
trap:
	PRINT "YOU FALL INTO A PIT."
	RETURN
cave:
	PRINT "YOU ARE AT THE ENTRANCE OF A CAVE."
	RETURN
treasure:
	PRINT "YOU FIND SOME GOLD COINS."
	RETURN
wait:
	PRINT "PRESS ANY KEY"
	WAIT KEY RELEASE
	RETURN
Post Reply