A program to generate a random dungeon level and populate it
Posted: Wed Feb 05, 2025 11:07 pm
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