Skip to content

Instantly share code, notes, and snippets.

@jlgib
Last active September 6, 2023 00:48
Show Gist options
  • Save jlgib/4230656 to your computer and use it in GitHub Desktop.
Save jlgib/4230656 to your computer and use it in GitHub Desktop.
QBASIC game I made in 9th grade. Good luck running it.
DECLARE SUB level.9 ()
DECLARE SUB game.won ()
DECLARE SUB level.8 ()
DECLARE SUB drawSpikes2 ()
DECLARE SUB eraseSpikes2 ()
DECLARE SUB levelstarter ()
DECLARE SUB deathMusic ()
DECLARE SUB slots ()
DECLARE SUB drawSpikes ()
DECLARE SUB eraseSpikes ()
DECLARE SUB dead.by.spikes ()
DECLARE SUB monsterInfo ()
DECLARE SUB ScreenModeError ()
DECLARE SUB get.guy.to.move (x!, y!)
DECLARE SUB level.1 ()
DECLARE SUB level.2 ()
DECLARE SUB level.3 ()
DECLARE SUB level.4 ()
DECLARE SUB level.5 ()
DECLARE SUB level.6 ()
DECLARE SUB level.7 ()
DECLARE SUB get.speed ()
DECLARE SUB get.color ()
DECLARE SUB dead.by.popper ()
DECLARE SUB dead.by.riddler ()
DECLARE SUB dead.by.riddlers ()
DECLARE SUB quit ()
DECLARE SUB title ()
DECLARE SUB begin ()
DECLARE SUB instructions ()
DECLARE SUB storyline ()
DECLARE SUB intermission1 ()
DECLARE SUB dead.by.electricwall ()
DECLARE SUB game.over ()
DECLARE SUB congratulations ()
DECLARE SUB dead.by.guard ()
DECLARE SUB border ()
DECLARE SUB dedication ()
DECLARE SUB center (row!, text$)
DECLARE SUB psintro ()
ON ERROR GOTO screenerror
RANDOMIZE TIMER
DIM SHARED speed
DIM SHARED guycolor
CLS
dedication
SCREEN 12
psintro
title
begin
get.speed
get.color
level.1
level.2
level.3
level.4
level.5
level.6
level.7
level.8
level.9
SYSTEM
screenerror:
ScreenModeError
SUB begin
CLS
border
COLOR 4
center 5, "Knowing the great danger that awaits you"
SLEEP 2
center 7, "You bravely enter the caves"
SLEEP 2
center 9, "GOOD LUCK!!!"
SLEEP 2
END SUB
SUB border
CLS
VIEW (9, 17)-(622, 430)
COLOR 8
FOR row = 1 TO 28
LOCATE row, 1
PRINT CHR$(219)
NEXT row
FOR row = 1 TO 28
LOCATE row, 79
PRINT CHR$(219)
NEXT row
FOR col = 1 TO 79
LOCATE 1, col
PRINT CHR$(219)
NEXT col
FOR col = 1 TO 79
LOCATE 28, col
PRINT CHR$(219)
NEXT col
END SUB
SUB center (row, text$)
LOCATE row, 41 - LEN(text$) / 2
PRINT text$;
END SUB
SUB congratulations
CLS
FOR c = 1 TO 3
COLOR c
LOCATE 9, 2
PRINT "                 "
LOCATE 10, 2
PRINT "                      "
LOCATE 11, 2
PRINT "                     "
LOCATE 12, 2
PRINT "                         "
LOCATE 13, 2
PRINT "                       "
LOCATE 14, 2
PRINT "                   "
IF c < 3 THEN PRINT : PRINT
NEXT c
SLEEP 2
CLS
COLOR 4
center 13, "YOU VENTURE FURTHER INTO THE CAVE!!!"
m$ = "o1l20a-a-a-a-b-b-b-b-"
PLAY m$
PLAY m$
PLAY m$
PLAY m$
END SUB
SUB dead.by.electricwall
CLS
COLOR 4
center 5, "You clumsily run into a wall"
SLEEP 2
center 7, "You feel an enormous electric shock run throughout your body"
SLEEP 2
center 9, "Your dead body tumbles to the floor"
deathMusic
game.over
END SUB
SUB dead.by.guard
COLOR 4
CLS
center 5, "The guard of the caves catches you"
SLEEP 2
center 7, "You try to shake free of his strong grasp but you can't get loose"
SLEEP 2
center 9, "The guard devours you alive!!!"
deathMusic
game.over
END SUB
SUB dead.by.popper
CLS
COLOR 4
center 5, "The popper jumps out of the ground and grabs you"
SLEEP 2
center 7, "It growls at you and shows it's big sharp teeth"
SLEEP 2
center 9, "You are terrified"
SLEEP 2
center 11, "The popper opens it's mouth wide enough to swallow a horse"
SLEEP 2
center 13, "It swallows you whole!!!"
deathMusic
game.over
END SUB
SUB dead.by.riddler
CLS
center 5, "Ha! Ha! Ha!"
SLEEP 2
center 7, "We beat you, We beat you!!!"
SLEEP 2
center 9, "Now you must feel our wrath..."
SLEEP 2
center 11, "Suddenly a huge tornado slowly emerges from the ground"
SLEEP 2
center 13, "It tears up the floor and sends you flying down"
SLEEP 2
center 15, "into a never-ending pit..."
deathMusic
game.over
END SUB
SUB dead.by.spikes
CLS
COLOR 4
center 5, "Suddenly a laser shoots out of the wall at you."
SLEEP 2
center 7, "You feel it penetrate through your flesh and go into you."
SLEEP 2
center 9, "You start to feel dizzy, you faint and fall over."
SLEEP 2
center 11, "When you wake up you are on a table surrounded by guards."
SLEEP 2
center 13, "Hey, why are they all holding that silverware?"
SLEEP 2
deathMusic
game.over
END SUB
SUB deathMusic
m$ = "o1l20a-b-a-b-abab"
PLAY m$
PLAY m$
PLAY m$
PLAY m$
END SUB
SUB dedication
a = 19
b = 21
c = 24
DO
e = e + 1
a = a - 1
b = b - 1
c = c - 1
IF e = 14 THEN e = 9
COLOR e
center a, "This game is dedicated to"
center b, "my lovely, beautiful girlfriend..."
center c, "Priscilla"
IF a = 5 THEN SLEEP 3: GOTO end.of.dedication
FOR d = 1 TO 1000: NEXT d
center a, " "
center b, " "
center c, " "
LOOP
end.of.dedication:
SCREEN 12
END SUB
SUB drawSpikes
LINE (305, 3)-(305, 460), 4
LINE (3, 200)-(630, 200), 4
END SUB
SUB drawSpikes2
LINE (450, 3)-(450, 460), 4
LINE (305, 3)-(305, 460), 4
LINE (150, 3)-(150, 460), 4
LINE (3, 100)-(630, 100), 4
LINE (3, 200)-(630, 200), 4
LINE (3, 295)-(630, 295), 4
END SUB
SUB eraseSpikes
LINE (305, 0)-(305, 480), 0
LINE (0, 200)-(680, 200), 0
END SUB
SUB eraseSpikes2
LINE (450, 3)-(450, 460), 0
LINE (305, 3)-(305, 460), 0
LINE (150, 3)-(150, 460), 0
LINE (3, 100)-(630, 100), 0
LINE (3, 200)-(630, 200), 0
LINE (3, 295)-(630, 295), 0
END SUB
SUB game.over
CLS
COLOR 4
center 13, "G A M E O V E R"
SLEEP 2
SYSTEM
END SUB
SUB game.won
border
CLS
COLOR guycolor
LOCATE 14, 40
PRINT CHR$(157)
COLOR 3
LOCATE 9, 40
PRINT CHR$(157)
SLEEP 1
center 5, "Thank you for collecting all of the diamonds and saving me"
SLEEP 2
center 6, "from the clutches of the evil Dungeon Master!!!"
SLEEP 2
CLS
COLOR 3
LOCATE 9, 40
PRINT CHR$(157)
COLOR guycolor
LOCATE 14, 40: PRINT " "
FOR x = 14 TO 10 STEP -1
LOCATE x, 40: PRINT CHR$(157)
FOR a = 1 TO speed * 20: NEXT a
LOCATE x, 40: PRINT " "
NEXT x
LOCATE 10, 40: PRINT CHR$(157)
FOR a = 1 TO speed * 20: NEXT a
LOCATE 10, 40: PRINT " "
LOCATE 10, 39: PRINT CHR$(157)
FOR a = 1 TO speed * 20: NEXT a
LOCATE 10, 39: PRINT " "
LOCATE 10, 38: PRINT CHR$(157)
FOR a = 1 TO speed * 20: NEXT a
LOCATE 10, 38: PRINT " "
LOCATE 9, 38: PRINT CHR$(157)
FOR a = 1 TO speed * 100: NEXT a
COLOR 4
LOCATE 7, 39: PRINT CHR$(3)
SLEEP 2
LOCATE 14, 39
PRINT CHR$(5)
center 16, "The Dungeon Master appears..."
SLEEP 2
center 18, "You may have won for now,"
SLEEP 2
center 19, "But I will be back for revenge!!!"
SLEEP 2
LOCATE 14, 39: PRINT " "
center 16, " "
center 18, " "
center 19, " "
PLAY "mbo1l4gcdebcfgabgefgccc"
FOR a = 1 TO 200
COLOR RND * 15
center 5, "T H E E N D "
NEXT a
END SUB
SUB get.color
CLS
border
COLOR 7
center 5, "Choose your color"
guycolor = 1
DO
IF guycolor = 1 THEN COLOR 1 ELSE COLOR 8
center 7, "Blue"
IF guycolor = 2 THEN COLOR 2 ELSE COLOR 8
center 8, "Green"
IF guycolor = 3 THEN COLOR 3 ELSE COLOR 8
center 9, "Cyan"
IF guycolor = 4 THEN COLOR 4 ELSE COLOR 8
center 10, "Red"
IF guycolor = 5 THEN COLOR 5 ELSE COLOR 8
center 11, "Purple"
IF guycolor = 6 THEN COLOR 6 ELSE COLOR 8
center 12, "Brown"
IF guycolor = 7 THEN COLOR 7 ELSE COLOR 8
center 13, "White"
a$ = INKEY$
IF a$ = CHR$(0) + "H" THEN guycolor = guycolor - 1
IF a$ = CHR$(0) + "P" THEN guycolor = guycolor + 1
IF a$ = CHR$(13) THEN GOTO got.the.color
IF guycolor = 0 THEN guycolor = 7
IF guycolor = 8 THEN guycolor = 1
LOOP
got.the.color:
END SUB
SUB get.guy.to.move (x, y)
a$ = INKEY$
SELECT CASE a$
CASE CHR$(0) + "H": direction = 1
CASE CHR$(0) + "P": direction = 2
CASE CHR$(0) + "K": direction = 3
CASE CHR$(0) + "M": direction = 4
CASE "": direction = 0
CASE CHR$(27): quit
CASE ELSE
END SELECT
SELECT CASE direction
CASE 1: LOCATE x, y: PRINT " ": x = x - 1
CASE 2: LOCATE x, y: PRINT " ": x = x + 1
CASE 3: LOCATE x, y: PRINT " ": y = y - 1
CASE 4: LOCATE x, y: PRINT " ": y = y + 1
CASE 0:
END SELECT
END SUB
SUB get.speed
speed = 1000
END SUB
SUB instructions
CLS
border
COLOR 4
center 5, "OBJECT OF GAME:"
center 7, "The object of the game is to collect magic diamonds"
center 8, "in each section of the caves. To do this you must dodge"
center 9, "guards and solve puzzles. Once you have all of the diamonds"
center 10, "you can release your love from the spell of the evil"
center 11, "Dungeon Master."
DO: LOOP WHILE INKEY$ = ""
CLS
center 5, "HOW TO PLAY:"
center 7, "In this game you move around with the arrow keys."
center 9, "You are "
center 10, " "
center 12, "This common guard is "
center 13, " "
center 15, "You will also come across many other creatures"
center 17, "and guards througout your adventure."
DO: LOOP WHILE INKEY$ = ""
CLS
center 5, "HOW TO PLAY:"
center 7, "To move up press the up arrow key"
center 8, "To move down press the down arrow key"
center 9, "To move left press the left arrow key"
center 10, "To move right press the right arrow key"
center 12, "To pick up magic diamonds just move over them."
center 14, "To quit the game just press the Esc key."
DO: LOOP WHILE INKEY$ = ""
CLS
title
END SUB
SUB intermission1
CLS
COLOR 4
center 5, "The Dungeon Master appears..."
SLEEP 2
COLOR 4
center 7, ""
center 8, "So you think that you can defeat my dungeon?"
SLEEP 2
COLOR 7
center 10, ""
center 11, "Yes. I do. Nothing can stop me from saving Vai!!!"
SLEEP 2
COLOR 4
center 13, ""
center 14, "Is that what you think? Well you are wrong!!!"
m$ = "o1l20gdefgdefgdef"
PLAY m$
PLAY m$
PLAY m$
PLAY m$
congratulations
END SUB
SUB level.1
CLS
border
COLOR 7
a1 = 3
b1 = 55
a2 = 14
b2 = 3
a3 = 3
b3 = 20
a4 = 14
b4 = 78
m1 = 0
m2 = 0
x = 3
y = 3
s = 0
m$ = "o1l20abcd"
DO
COLOR 7
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
mt2 = mt2 + 1
IF b2 = 2 THEN m2 = 0
IF b2 = 78 THEN m2 = 1
IF m2 = 0 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": b2 = b2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 1 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": b2 = b2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
mt3 = mt3 + 1
IF a3 = 2 THEN m3 = 0
IF a3 = 27 THEN m3 = 1
IF m3 = 1 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF m3 = 0 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
mt4 = mt4 + 1
IF b4 = 2 THEN m4 = 0
IF b4 = 78 THEN m4 = 1
IF m4 = 0 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF m4 = 1 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF s = 0 THEN LOCATE 5, 5: PRINT CHR$(4)
IF s = 1 THEN LOCATE 3, 60: PRINT CHR$(4)
IF s = 2 THEN LOCATE 20, 7: PRINT CHR$(4)
IF s = 3 THEN LOCATE 22, 63: PRINT CHR$(4)
IF s = 0 THEN IF x = 5 THEN IF y = 5 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 3 THEN IF y = 60 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 20 THEN IF y = 7 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 22 THEN IF y = 63 THEN PLAY m$: s = 4
IF s = 4 THEN LOCATE 14, 79: PRINT " "
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
get.guy.to.move x, y
IF s = 4 THEN IF x = 14 THEN IF y = 79 THEN 1
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
1
congratulations
END SUB
SUB level.2
CLS
border
COLOR 7
a1 = 14
b1 = 10
m1 = 0
a2 = 2
b2 = 20
m2 = 0
a3 = 7
b3 = 30
m3 = 0
a4 = 27
b4 = 40
m4 = 0
a5 = 9
b5 = 50
m5 = 0
x = 14
y = 3
s = 0
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
mt2 = mt2 + 1
IF a2 = 27 THEN m2 = 1
IF a2 = 2 THEN m2 = 0
IF m2 = 0 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 1 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
mt3 = mt3 + 1
IF a3 = 27 THEN m3 = 1
IF a3 = 2 THEN m3 = 0
IF m3 = 0 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF m3 = 1 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
mt4 = mt4 + 1
IF a4 = 27 THEN m4 = 1
IF a4 = 2 THEN m4 = 0
IF m4 = 0 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": a4 = a4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF m4 = 1 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": a4 = a4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
mt5 = mt5 + 1
IF a5 = 27 THEN m5 = 1
IF a5 = 2 THEN m5 = 0
IF m5 = 0 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": a5 = a5 + 1: LOCATE a5, b5: PRINT CHR$(1): mt5 = 0
IF m5 = 1 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": a5 = a5 - 1: LOCATE a5, b5: PRINT CHR$(1): mt5 = 0
IF s = 0 THEN LOCATE 14, 70: PRINT CHR$(4)
IF s = 1 THEN LOCATE 12, 70: PRINT CHR$(4)
IF s = 2 THEN LOCATE 16, 70: PRINT CHR$(4)
IF s = 3 THEN LOCATE 14, 79: PRINT " "
IF s = 0 THEN IF x = 14 THEN IF y = 70 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 12 THEN IF y = 70 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 16 THEN IF y = 70 THEN PLAY m$: s = 3
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
IF x = a5 THEN IF y = b5 THEN dead.by.guard
get.guy.to.move x, y
IF s = 3 THEN IF x = 14 THEN IF y = 79 THEN 2
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
2
congratulations
END SUB
SUB level.3
CLS
border
FOR a = 1 TO 13
LOCATE a, 40
PRINT CHR$(219)
NEXT a
FOR a = 15 TO 28
LOCATE a, 40
PRINT CHR$(219)
NEXT a
COLOR 7
a1 = 3
b1 = 55
m1 = 0
a2 = 3
b2 = 20
m2 = 0
a3 = 18
b3 = 3
m3 = 0
a4 = 10
b4 = 78
m4 = 0
a5 = 14
b5 = 2
m5 = 0
x = 3
y = 3
s = 0
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
mt2 = mt2 + 1
IF a2 = 27 THEN m2 = 1
IF a2 = 2 THEN m2 = 0
IF m2 = 0 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 1 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
mt3 = mt3 + 1
IF b3 = 39 THEN m3 = 0
IF b3 = 2 THEN m3 = 1
IF m3 = 1 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": b3 = b3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF m3 = 0 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": b3 = b3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
mt4 = mt4 + 1
IF b4 = 78 THEN m4 = 0
IF b4 = 41 THEN m4 = 1
IF m4 = 0 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF m4 = 1 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
mt5 = mt5 + 1
IF b5 = 78 THEN m5 = 0
IF b5 = 2 THEN m5 = 1
IF m5 = 0 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": b5 = b5 - 1: LOCATE a5, b5: PRINT CHR$(1): mt5 = 0
IF m5 = 1 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": b5 = b5 + 1: LOCATE a5, b5: PRINT CHR$(1): mt5 = 0
IF s = 0 THEN LOCATE 25, 32: PRINT CHR$(4)
IF s = 1 THEN LOCATE 3, 70: PRINT CHR$(4)
IF s = 2 THEN LOCATE 25, 70: PRINT CHR$(4)
IF s = 3 THEN LOCATE 5, 5: PRINT CHR$(4)
IF s = 0 THEN IF x = 25 THEN IF y = 32 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 3 THEN IF y = 70 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 25 THEN IF y = 70 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 5 THEN IF y = 5 THEN PLAY m$: s = 4
IF s = 4 THEN LOCATE 14, 79: PRINT " "
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
IF x = a5 THEN IF y = b5 THEN dead.by.guard
IF x < 14 THEN IF y = 40 THEN dead.by.electricwall
IF x > 14 THEN IF y = 40 THEN dead.by.electricwall
get.guy.to.move x, y
IF s = 4 THEN IF x = 14 THEN IF y = 79 THEN 3
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
3
intermission1
END SUB
SUB level.4
CLS
border
FOR row = 1 TO 5
LOCATE row, 65
PRINT CHR$(219)
NEXT row
FOR row = 1 TO 5
LOCATE row, 75
PRINT CHR$(219)
NEXT row
FOR col = 65 TO 75
LOCATE 5, col
PRINT CHR$(219)
NEXT col
FOR row = 28 TO 24 STEP -1
LOCATE row, 65
PRINT CHR$(219)
NEXT row
FOR row = 28 TO 24 STEP -1
LOCATE row, 75
PRINT CHR$(219)
NEXT row
FOR col = 65 TO 75
LOCATE 24, col
PRINT CHR$(219)
NEXT col
COLOR 7
a1 = 3
b1 = 55
a2 = 27
b2 = 54
a3 = 3
b3 = 53
a4 = 27
b4 = 52
a5 = 3
b5 = 51
a6 = 27
b6 = 50
a7 = 3
b7 = 49
a8 = 27
b8 = 48
a9 = 3
b9 = 47
x = 3
y = 3
s = 0
r = 0
b = 0
m$ = "o1l20abcd"
DO
answered.riddle.4:
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(2): mt1 = 0
IF m1 = 1 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(2): mt1 = 0
mt2 = mt2 + 1
IF a2 = 27 THEN m2 = 1
IF a2 = 2 THEN m2 = 0
IF m2 = 0 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 + 1: LOCATE a2, b2: PRINT CHR$(2): mt2 = 0
IF m2 = 1 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": a2 = a2 - 1: LOCATE a2, b2: PRINT CHR$(2): mt2 = 0
mt3 = mt3 + 1
IF a3 = 27 THEN m3 = 1
IF a3 = 2 THEN m3 = 0
IF m3 = 0 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 + 1: LOCATE a3, b3: PRINT CHR$(2): mt3 = 0
IF m3 = 1 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 - 1: LOCATE a3, b3: PRINT CHR$(2): mt3 = 0
mt4 = mt4 + 1
IF a4 = 27 THEN m4 = 1
IF a4 = 2 THEN m4 = 0
IF m4 = 0 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": a4 = a4 + 1: LOCATE a4, b4: PRINT CHR$(2): mt4 = 0
IF m4 = 1 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": a4 = a4 - 1: LOCATE a4, b4: PRINT CHR$(2): mt4 = 0
mt5 = mt5 + 1
IF a5 = 27 THEN m5 = 1
IF a5 = 2 THEN m5 = 0
IF m5 = 0 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": a5 = a5 + 1: LOCATE a5, b5: PRINT CHR$(2): mt5 = 0
IF m5 = 1 THEN IF mt5 = 1 THEN LOCATE a5, b5: PRINT " ": a5 = a5 - 1: LOCATE a5, b5: PRINT CHR$(2): mt5 = 0
mt6 = mt6 + 1
IF a6 = 27 THEN m6 = 1
IF a6 = 2 THEN m6 = 0
IF m6 = 0 THEN IF mt6 = 1 THEN LOCATE a6, b6: PRINT " ": a6 = a6 + 1: LOCATE a6, b6: PRINT CHR$(2): mt6 = 0
IF m6 = 1 THEN IF mt6 = 1 THEN LOCATE a6, b6: PRINT " ": a6 = a6 - 1: LOCATE a6, b6: PRINT CHR$(2): mt6 = 0
mt7 = mt7 + 1
IF a7 = 27 THEN m7 = 1
IF a7 = 2 THEN m7 = 0
IF m7 = 0 THEN IF mt7 = 1 THEN LOCATE a7, b7: PRINT " ": a7 = a7 + 1: LOCATE a7, b7: PRINT CHR$(2): mt7 = 0
IF m7 = 1 THEN IF mt7 = 1 THEN LOCATE a7, b7: PRINT " ": a7 = a7 - 1: LOCATE a7, b7: PRINT CHR$(2): mt7 = 0
mt8 = mt8 + 1
IF a8 = 27 THEN m8 = 1
IF a8 = 2 THEN m8 = 0
IF m8 = 0 THEN IF mt8 = 1 THEN LOCATE a8, b8: PRINT " ": a8 = a8 + 1: LOCATE a8, b8: PRINT CHR$(2): mt8 = 0
IF m8 = 1 THEN IF mt8 = 1 THEN LOCATE a8, b8: PRINT " ": a8 = a8 - 1: LOCATE a8, b8: PRINT CHR$(2): mt8 = 0
mt9 = mt9 + 1
IF a9 = 27 THEN m9 = 1
IF a9 = 2 THEN m9 = 0
IF m9 = 0 THEN IF mt9 = 1 THEN LOCATE a9, b9: PRINT " ": a9 = a9 + 1: LOCATE a9, b9: PRINT CHR$(2): mt9 = 0
IF m9 = 1 THEN IF mt9 = 1 THEN LOCATE a9, b9: PRINT " ": a9 = a9 - 1: LOCATE a9, b9: PRINT CHR$(2): mt9 = 0
IF d1 = 0 THEN LOCATE 14, 30: PRINT CHR$(4)
IF d2 = 0 THEN LOCATE 3, 70: PRINT CHR$(4)
IF d3 = 0 THEN LOCATE 26, 70: PRINT CHR$(4)
IF d1 = 0 THEN IF x = 14 THEN IF y = 30 THEN PLAY m$: s = s + 1: d1 = 1
IF d2 = 0 THEN IF x = 3 THEN IF y = 70 THEN PLAY m$: s = s + 1: d2 = 1
IF d3 = 0 THEN IF x = 26 THEN IF y = 70 THEN PLAY m$: s = s + 1: d3 = 1
IF d1 = 1 THEN IF d2 = 1 THEN IF d3 = 1 THEN LOCATE 14, 79: PRINT " "
IF r = 0 THEN LOCATE 14, 29: PRINT CHR$(21)
IF r = 0 THEN LOCATE 14, 31: PRINT CHR$(21)
IF r = 0 THEN LOCATE 13, 30: PRINT CHR$(21)
IF r = 0 THEN LOCATE 15, 30: PRINT CHR$(21)
IF r = 0 THEN IF x = 14 THEN IF y = 29 THEN GOTO riddlers.4
IF r = 0 THEN IF x = 14 THEN IF y = 31 THEN GOTO riddlers.4
IF r = 0 THEN IF x = 13 THEN IF y = 30 THEN GOTO riddlers.4
IF r = 0 THEN IF x = 15 THEN IF y = 30 THEN GOTO riddlers.4
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
IF x = a5 THEN IF y = b5 THEN dead.by.guard
get.guy.to.move x, y
IF d1 = 1 THEN IF d2 = 1 THEN IF d3 = 1 THEN IF x = 14 THEN IF y = 79 THEN 4
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
LOOP
riddlers.4:
CLS
COLOR 4
center 5, "We are the riddlers!!!"
SLEEP 2
center 7, "If you want you're precious diamond you must answer a question"
SLEEP 2
center 9, "You get one chance to answer one question!!!"
SLEEP 2
center 11, "The question is..."
SLEEP 2
center 13, "Who is the owner of this cave?"
center 15, "1 The Dungeon Keeper"
center 16, "2 The Dungeon Master"
center 17, "3 The Dungeon Guy "
center 18, "4 The Dungeon Guru "
DO
a$ = INKEY$
IF a$ = "1" THEN dead.by.riddler
IF a$ = "2" THEN CLS : COLOR 7: r = 1: GOTO answered.riddle.4
IF a$ = "3" THEN dead.by.riddler
IF a$ = "4" THEN dead.by.riddler
FOR a# = 1 TO speed: NEXT a#
LOOP
4
congratulations
END SUB
SUB level.5
CLS
border
COLOR 7
x = 3
y = 3
s = 0
a = 14
b = 60
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
m = m + 1
IF m = 80 THEN LOCATE a, b: PRINT " "
IF m = 80 THEN a = INT(RND(1) * 26) + 2
IF m = 80 THEN b = INT(RND(1) * 77) + 2: m = 0
LOCATE a, b
PRINT CHR$(15)
IF s = 0 THEN LOCATE 14, 5: PRINT CHR$(4)
IF s = 1 THEN LOCATE 16, 20: PRINT CHR$(4)
IF s = 2 THEN LOCATE 5, 40: PRINT CHR$(4)
IF s = 3 THEN LOCATE 22, 60: PRINT CHR$(4)
IF s = 0 THEN IF x = 14 THEN IF y = 5 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 16 THEN IF y = 20 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 5 THEN IF y = 40 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 22 THEN IF y = 60 THEN PLAY m$: s = 4
IF s = 4 THEN LOCATE 28, 60: PRINT " "
IF x = a THEN IF y = b THEN FOR t = 1 TO 1000: NEXT t: dead.by.popper
get.guy.to.move x, y
IF s = 4 THEN IF x = 28 THEN IF y = 60 THEN 5
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
5
congratulations
END SUB
SUB level.6
CLS
border
COLOR 8
FOR x = 1 TO 28
LOCATE x, 20
PRINT CHR$(219)
NEXT x
FOR x = 1 TO 28
LOCATE x, 60
PRINT CHR$(219)
NEXT x
COLOR 2
LOCATE 14, 20
PRINT CHR$(219)
COLOR 9
LOCATE 14, 60
PRINT CHR$(219)
COLOR 7
x = 14
y = 3
s = 0
a1 = 4
b1 = 7
a2 = 19
b2 = 39
green.key = 0
blue.key = 0
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 4 THEN IF b1 = 9 THEN m1 = 1
IF a1 = 6 THEN IF b1 = 9 THEN m1 = 0
IF a1 = 6 THEN IF b1 = 11 THEN m1 = 2
IF a1 = 4 THEN IF b1 = 11 THEN m1 = 3
IF m1 = 0 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": b1 = b1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 2 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 3 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": b1 = b1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
mt2 = mt2 + 1
IF a2 = 19 THEN IF b2 = 39 THEN m2 = 1
IF a2 = 21 THEN IF b2 = 39 THEN m2 = 0
IF a2 = 21 THEN IF b2 = 41 THEN m2 = 2
IF a2 = 19 THEN IF b2 = 41 THEN m2 = 3
IF m2 = 0 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": b2 = b2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 1 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": a2 = a2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 2 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": a2 = a2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 3 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": b2 = b2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF green.key = 0 THEN LOCATE 5, 10: COLOR 2: PRINT CHR$(22)
IF blue.key = 0 THEN LOCATE 20, 40: COLOR 9: PRINT CHR$(22): COLOR 7
IF green.key = 0 THEN IF x = 5 THEN IF y = 10 THEN green.key = 1: PLAY m$
IF blue.key = 0 THEN IF x = 20 THEN IF y = 40 THEN blue.key = 1: PLAY m$
IF green.key = 0 THEN IF x = 14 THEN IF y = 20 THEN dead.by.electricwall
IF blue.key = 0 THEN IF x = 14 THEN IF y = 60 THEN dead.by.electricwall
IF s = 0 THEN LOCATE 14, 15: PRINT CHR$(4)
IF s = 1 THEN LOCATE 14, 30: PRINT CHR$(4)
IF s = 2 THEN LOCATE 14, 45: PRINT CHR$(4)
IF s = 3 THEN LOCATE 14, 65: PRINT CHR$(4)
IF s = 4 THEN LOCATE 14, 40: PRINT CHR$(4)
IF s = 0 THEN IF x = 14 THEN IF y = 15 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 14 THEN IF y = 30 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 14 THEN IF y = 45 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 14 THEN IF y = 65 THEN PLAY m$: s = 4
IF s = 4 THEN IF x = 14 THEN IF y = 40 THEN PLAY m$: s = 5
IF s = 5 THEN 6
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF y = 20 THEN IF x > 0 THEN IF x < 14 THEN dead.by.electricwall
IF y = 20 THEN IF x < 80 THEN IF x > 14 THEN dead.by.electricwall
IF y = 60 THEN IF x > 0 THEN IF x < 14 THEN dead.by.electricwall
IF y = 60 THEN IF x < 80 THEN IF x > 14 THEN dead.by.electricwall
get.guy.to.move x, y
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
6
CLS
LOCATE 5, 40
COLOR 4: PRINT "": COLOR 4
LOCATE 14, 40
COLOR guycolor: PRINT CHR$(157): COLOR 4
FOR a# = 1 TO speed * 100: NEXT a#
center 7, "You are doing better than I expected."
SLEEP 2
center 9, "You are still no match for my caves!"
SLEEP 2
m$ = "o1l20gdefgdefgdef"
PLAY m$
PLAY m$
PLAY m$
PLAY m$
congratulations
END SUB
SUB level.7
CLS
border
COLOR 7
a1 = 4
b1 = 9
a2 = 4
b2 = 70
a3 = 19
b3 = 9
a4 = 19
b4 = 70
a5 = 14
b5 = 60
a6 = 6
b6 = 5
a7 = 22
b7 = 70
spikes = 0
x = 3
y = 3
s = 0
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
spikes = spikes + 1
IF spikes = 100 THEN drawSpikes
IF spikes = 110 THEN eraseSpikes: spikes = 0
IF spikes >= 100 THEN IF spikes <= 110 THEN IF x = 14 OR y = 40 THEN dead.by.spikes
m5 = m5 + 1
IF m5 = 80 THEN LOCATE a5, b5: PRINT " "
IF m5 = 80 THEN a5 = INT(RND(1) * 26) + 2
IF m5 = 80 THEN b5 = INT(RND(1) * 77) + 2: m5 = 0
LOCATE a5, b5
PRINT CHR$(15)
m6 = m6 + 1
IF m6 = 80 THEN LOCATE a6, b6: PRINT " "
IF m6 = 80 THEN a6 = INT(RND(1) * 26) + 2
IF m6 = 80 THEN b6 = INT(RND(1) * 77) + 2: m6 = 0
LOCATE a6, b6
PRINT CHR$(15)
m7 = m7 + 1
IF m7 = 80 THEN LOCATE a7, b7: PRINT " "
IF m7 = 80 THEN a7 = INT(RND(1) * 26) + 2
IF m7 = 80 THEN b7 = INT(RND(1) * 77) + 2: m7 = 0
LOCATE a7, b7
PRINT CHR$(15)
IF s = 0 THEN mt1 = mt1 + 1
IF s = 0 THEN IF a1 = 6 THEN IF b1 = 9 THEN m1 = 0
IF s = 0 THEN IF a1 = 4 THEN IF b1 = 9 THEN m1 = 1
IF s = 0 THEN IF a1 = 6 THEN IF b1 = 11 THEN m1 = 2
IF s = 0 THEN IF a1 = 4 THEN IF b1 = 11 THEN m1 = 3
IF s = 0 THEN IF m1 = 0 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": b1 = b1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF s = 0 THEN IF m1 = 1 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF s = 0 THEN IF m1 = 2 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF s = 0 THEN IF m1 = 3 THEN IF mt1 = 3 THEN LOCATE a1, b1: PRINT " ": b1 = b1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF s = 1 THEN mt2 = mt2 + 1
IF s = 1 THEN IF a2 = 6 THEN IF b2 = 70 THEN m2 = 0
IF s = 1 THEN IF a2 = 4 THEN IF b2 = 70 THEN m2 = 1
IF s = 1 THEN IF a2 = 6 THEN IF b2 = 72 THEN m2 = 2
IF s = 1 THEN IF a2 = 4 THEN IF b2 = 72 THEN m2 = 3
IF s = 1 THEN IF m2 = 0 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": b2 = b2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF s = 1 THEN IF m2 = 1 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": a2 = a2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF s = 1 THEN IF m2 = 2 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": a2 = a2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF s = 1 THEN IF m2 = 3 THEN IF mt2 = 3 THEN LOCATE a2, b2: PRINT " ": b2 = b2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF s = 2 THEN mt3 = mt3 + 1
IF s = 2 THEN IF a3 = 21 THEN IF b3 = 9 THEN m3 = 0
IF s = 2 THEN IF a3 = 19 THEN IF b3 = 9 THEN m3 = 1
IF s = 2 THEN IF a3 = 21 THEN IF b3 = 11 THEN m3 = 2
IF s = 2 THEN IF a3 = 19 THEN IF b3 = 11 THEN m3 = 3
IF s = 2 THEN IF m3 = 0 THEN IF mt3 = 3 THEN LOCATE a3, b3: PRINT " ": b3 = b3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF s = 2 THEN IF m3 = 1 THEN IF mt3 = 3 THEN LOCATE a3, b3: PRINT " ": a3 = a3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF s = 2 THEN IF m3 = 2 THEN IF mt3 = 3 THEN LOCATE a3, b3: PRINT " ": a3 = a3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF s = 2 THEN IF m3 = 3 THEN IF mt3 = 3 THEN LOCATE a3, b3: PRINT " ": b3 = b3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF s = 3 THEN mt4 = mt4 + 1
IF s = 3 THEN IF a4 = 21 THEN IF b4 = 70 THEN m4 = 0
IF s = 3 THEN IF a4 = 19 THEN IF b4 = 70 THEN m4 = 1
IF s = 3 THEN IF a4 = 21 THEN IF b4 = 72 THEN m4 = 2
IF s = 3 THEN IF a4 = 19 THEN IF b4 = 72 THEN m4 = 3
IF s = 3 THEN IF m4 = 0 THEN IF mt4 = 3 THEN LOCATE a4, b4: PRINT " ": b4 = b4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF s = 3 THEN IF m4 = 1 THEN IF mt4 = 3 THEN LOCATE a4, b4: PRINT " ": a4 = a4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF s = 3 THEN IF m4 = 2 THEN IF mt4 = 3 THEN LOCATE a4, b4: PRINT " ": a4 = a4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF s = 3 THEN IF m4 = 3 THEN IF mt4 = 3 THEN LOCATE a4, b4: PRINT " ": b4 = b4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF s = 0 THEN LOCATE 5, 10: PRINT CHR$(4)
IF s = 1 THEN LOCATE 5, 71: PRINT CHR$(4)
IF s = 2 THEN LOCATE 20, 10: PRINT CHR$(4)
IF s = 3 THEN LOCATE 20, 71: PRINT CHR$(4)
IF s = 0 THEN IF x = 5 THEN IF y = 10 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 5 THEN IF y = 71 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 20 THEN IF y = 10 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 20 THEN IF y = 71 THEN PLAY m$: s = 4
IF s = 4 THEN LOCATE 14, 79: PRINT " "
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
IF x = a5 THEN IF y = b5 THEN dead.by.popper
IF x = a6 THEN IF y = b6 THEN dead.by.popper
IF x = a7 THEN IF y = b7 THEN dead.by.popper
get.guy.to.move x, y
IF s = 4 THEN IF x = 14 THEN IF y = 79 THEN 7
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
7
congratulations
END SUB
SUB level.8
CLS
border
COLOR 7
a5 = 14
b5 = 60
a6 = 6
b6 = 5
a7 = 22
b7 = 70
a8 = 20
b8 = 55
m = 50
x = 3
y = 3
s = 0
spikes = 50
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
spikes = spikes + 1
IF spikes = 70 THEN drawSpikes2
IF spikes = 80 THEN eraseSpikes2: spikes = 0
m = m + 1
IF m = 80 THEN LOCATE a5, b5: PRINT " "
IF m = 80 THEN a5 = INT(RND(1) * 26) + 2
IF m = 80 THEN b5 = INT(RND(1) * 77) + 2
LOCATE a5, b5
PRINT CHR$(15)
IF m = 80 THEN LOCATE a6, b6: PRINT " "
IF m = 80 THEN a6 = INT(RND(1) * 26) + 2
IF m = 80 THEN b6 = INT(RND(1) * 77) + 2
LOCATE a6, b6
PRINT CHR$(15)
IF m = 80 THEN LOCATE a7, b7: PRINT " "
IF m = 80 THEN a7 = INT(RND(1) * 26) + 2
IF m = 80 THEN b7 = INT(RND(1) * 77) + 2
LOCATE a7, b7
PRINT CHR$(15)
IF m = 80 THEN LOCATE a8, b8: PRINT " "
IF m = 80 THEN a8 = INT(RND(1) * 26) + 2
IF m = 80 THEN b8 = INT(RND(1) * 77) + 2: m = 0
LOCATE a8, b8
PRINT CHR$(15)
IF s = 0 THEN LOCATE 10, 7: PRINT CHR$(4)
IF s = 1 THEN LOCATE 16, 25: PRINT CHR$(4)
IF s = 2 THEN LOCATE 24, 45: PRINT CHR$(4)
IF s = 3 THEN LOCATE 10, 51: PRINT CHR$(4)
IF s = 4 THEN LOCATE 18, 70: PRINT CHR$(4)
IF s = 5 THEN LOCATE 18, 79: PRINT " "
IF s = 0 THEN IF x = 10 THEN IF y = 7 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 16 THEN IF y = 25 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 24 THEN IF y = 45 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 10 THEN IF y = 51 THEN PLAY m$: s = 4
IF s = 4 THEN IF x = 18 THEN IF y = 70 THEN PLAY m$: s = 5
IF x = a5 THEN IF y = b5 THEN dead.by.popper
IF x = a6 THEN IF y = b6 THEN dead.by.popper
IF x = a7 THEN IF y = b7 THEN dead.by.popper
IF x = a8 THEN IF y = b8 THEN dead.by.popper
IF spikes >= 70 THEN IF spikes <= 80 THEN IF x = 14 OR x = 8 OR x = 20 OR y = 20 OR y = 40 OR y = 58 THEN dead.by.spikes
get.guy.to.move x, y
IF s = 5 THEN IF x = 18 THEN IF y = 79 THEN GOTO 8
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 79
FOR a# = 1 TO speed: NEXT a#
LOOP
8
congratulations
END SUB
SUB level.9
CLS
border
COLOR 7
a1 = 3
b1 = 55
a2 = 15
b2 = 3
a3 = 3
b3 = 20
a4 = 15
b4 = 78
a5 = 15
b5 = 60
a6 = 6
b6 = 5
a7 = 22
b7 = 70
a8 = 20
b8 = 55
a9 = 20
b9 = 70
x = 3
y = 3
m$ = "o1l20abcd"
DO
COLOR 7
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
IF s < 4 THEN GOTO draw.guard ELSE GOTO guard.gone
draw.guard:
spikes = spikes + 1
IF spikes >= 30 THEN drawSpikes
IF spikes = 50 THEN eraseSpikes: spikes = 0
IF spikes >= 30 THEN IF spikes <= 50 THEN IF x = 14 OR y = 40 THEN dead.by.spikes
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 1 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
mt2 = mt2 + 1
IF b2 = 2 THEN m2 = 0
IF b2 = 78 THEN m2 = 1
IF m2 = 0 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": b2 = b2 + 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
IF m2 = 1 THEN IF mt2 = 1 THEN LOCATE a2, b2: PRINT " ": b2 = b2 - 1: LOCATE a2, b2: PRINT CHR$(1): mt2 = 0
mt3 = mt3 + 1
IF a3 = 2 THEN m3 = 0
IF a3 = 27 THEN m3 = 1
IF m3 = 1 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 - 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
IF m3 = 0 THEN IF mt3 = 1 THEN LOCATE a3, b3: PRINT " ": a3 = a3 + 1: LOCATE a3, b3: PRINT CHR$(1): mt3 = 0
mt4 = mt4 + 1
IF b4 = 2 THEN m4 = 0
IF b4 = 78 THEN m4 = 1
IF m4 = 0 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 + 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
IF m4 = 1 THEN IF mt4 = 1 THEN LOCATE a4, b4: PRINT " ": b4 = b4 - 1: LOCATE a4, b4: PRINT CHR$(1): mt4 = 0
m = m + 1
IF m = 30 THEN LOCATE a5, b5: PRINT " "
IF m = 30 THEN a5 = INT(RND(1) * 26) + 2
IF m = 30 THEN b5 = INT(RND(1) * 77) + 2
LOCATE a5, b5
PRINT CHR$(15)
IF m = 30 THEN LOCATE a6, b6: PRINT " "
IF m = 30 THEN a6 = INT(RND(1) * 26) + 2
IF m = 30 THEN b6 = INT(RND(1) * 77) + 2
LOCATE a6, b6
PRINT CHR$(15)
IF m = 30 THEN LOCATE a7, b7: PRINT " "
IF m = 30 THEN a7 = INT(RND(1) * 26) + 2
IF m = 30 THEN b7 = INT(RND(1) * 77) + 2
LOCATE a7, b7
PRINT CHR$(15)
IF m = 30 THEN LOCATE a8, b8: PRINT " "
IF m = 30 THEN a8 = INT(RND(1) * 26) + 2
IF m = 30 THEN b8 = INT(RND(1) * 77) + 2: m = 0
LOCATE a8, b8
PRINT CHR$(15)
IF m = 30 THEN LOCATE a9, b9: PRINT " "
IF m = 30 THEN a9 = INT(RND(1) * 26) + 2
IF m = 30 THEN b9 = INT(RND(1) * 77) + 2: m = 0
LOCATE a9, b9
PRINT CHR$(15)
IF x = a1 THEN IF y = b1 THEN dead.by.guard
IF x = a2 THEN IF y = b2 THEN dead.by.guard
IF x = a3 THEN IF y = b3 THEN dead.by.guard
IF x = a4 THEN IF y = b4 THEN dead.by.guard
IF x = a5 THEN IF y = b5 THEN dead.by.popper
IF x = a6 THEN IF y = b6 THEN dead.by.popper
IF x = a7 THEN IF y = b7 THEN dead.by.popper
IF x = a8 THEN IF y = b8 THEN dead.by.popper
IF x = a9 THEN IF y = b9 THEN dead.by.popper
guard.gone:
IF s > 3 THEN IF spikes >= 30 THEN spikes = 0: CLS
IF s = 0 THEN LOCATE 5, 5: PRINT CHR$(4)
IF s = 1 THEN LOCATE 3, 60: PRINT CHR$(4)
IF s = 2 THEN LOCATE 20, 7: PRINT CHR$(4)
IF s = 3 THEN LOCATE 22, 63: PRINT CHR$(4)
IF s = 4 THEN LOCATE 14, 40: PRINT CHR$(4)
IF s = 0 THEN IF x = 5 THEN IF y = 5 THEN PLAY m$: s = 1
IF s = 1 THEN IF x = 3 THEN IF y = 60 THEN PLAY m$: s = 2
IF s = 2 THEN IF x = 20 THEN IF y = 7 THEN PLAY m$: s = 3
IF s = 3 THEN IF x = 22 THEN IF y = 63 THEN PLAY m$: s = 4: CLS
IF s = 4 THEN IF x = 14 THEN IF y = 40 THEN PLAY m$: PLAY m$: PLAY m$: PLAY m$: PLAY m$: PLAY m$: PLAY m$: PLAY m$: CLS : GOTO 9
get.guy.to.move x, y
IF x = 1 THEN x = 2
IF x = 28 THEN x = 27
IF y = 1 THEN y = 2
IF y = 79 THEN y = 78
FOR a# = 1 TO speed: NEXT a#
LOOP
9
game.won
END SUB
SUB levelstarter
CLS
border
COLOR 7
a1 = 3
b1 = 55
m1 = 0
x = 3
y = 3
s = 0
m$ = "o1l20abcd"
DO
LOCATE x, y
COLOR guycolor: PRINT CHR$(157): COLOR 7
mt1 = mt1 + 1
IF a1 = 27 THEN m1 = 1
IF a1 = 2 THEN m1 = 0
IF m1 = 0 THEN IF mt1 = 2 THEN LOCATE a1, b1: PRINT " ": a1 = a1 + 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF m1 = 1 THEN IF mt1 = 2 THEN LOCATE a1, b1: PRINT " ": a1 = a1 - 1: LOCATE a1, b1: PRINT CHR$(1): mt1 = 0
IF s = 0 THEN LOCATE 5, 5: PRINT CHR$(4)
IF s = 1 THEN LOCATE 3, 60: PRINT CHR$(4)
IF s = 2 THEN LOCATE 20, 7: PRINT CHR$(4)
IF s = 3 THEN LOCATE 22, 63: PRINT CHR$(4)
a$ = INKEY$
IF a$ = "8" THEN LOCATE x, y: PRINT " ": x = x - 1
IF a$ = "4" THEN LOCATE x, y: PRINT " ": y = y - 1
IF a$ = "2" THEN LOCATE x, y: PRINT " ": x = x + 1
IF a$ = "6" THEN LOCATE x, y: PRINT " ": y = y + 1
IF a$ = CHR$(27) THEN SYSTEM
LOOP
congratulations
END SUB
SUB monsterInfo
border
CLS
COLOR 2
center 5, "MONSTER CODE"
center 7, "So I see you have found out the monster code."
center 9, "This will tell you all of the info about"
center 10, "all of the monsters in this game"
center 12, "Enjoy!!!"
SLEEP
CLS
COLOR 7
center 5, ""
center 7, "This is the common guard in the game."
center 8, "You will see him alot."
center 9, "He is on a set path and will not go off of his path."
center 10, "He is usually pretty easy to avoid if you are not careless"
SLEEP
CLS
center 5, ""
center 7, "This is an Imperial Guard."
center 9, "He is always with other guards."
center 10, "They all work together to help kill you."
center 11, "They are pretty hard to dodge"
SLEEP
CLS
center 5, ""
center 7, "This is called a popper."
center 8, "He is on a random path."
center 9, "He just pops up wherever he feels like it."
center 10, "He is kind of easy to dodge."
SLEEP
CLS
center 5, ""
center 7, "This guy is called a riddler."
center 8, "He asks you a question and if you get it right"
center 9, "then he lets you pass."
center 10, "If you get it wrong you die."
center 11, "Riddlers do not move."
SLEEP
CLS
COLOR 4
center 5, "----------------"
COLOR 7
center 7, "This is a laser beam"
center 8, "They pop out of the wall from time to time"
center 9, "They are kind of easy and kind of hard to dodge"
SLEEP
CLS
COLOR 7
center 5, ""
center 7, "This is the Dungeon Master."
center 8, "He is the main evil guy in this game."
center 9, "Although you never actually fight him in this game,"
center 10, "He does pop up and taunt you."
SLEEP
title
END SUB
SUB psintro
CLS
CIRCLE (300, 250), 200, 2
SLEEP 1
CIRCLE (120, 150), 50, 2
CIRCLE (480, 350), 50, 2
SLEEP 1
PAINT (300, 270), 2
SLEEP 1
CIRCLE (480, 350), 50, 4
PAINT (480, 350), 4
CIRCLE (120, 150), 50, 1
PAINT (120, 150), 1
SLEEP 1
LINE (50, 400)-(550, 50), 5
SLEEP 2
PAINT (0, 0), 1
center 12, "PROSTHETIC SOFTWARE"
SLEEP 2
center 14, "PRESENTS..."
SLEEP 2
PAINT (0, 0), 2
center 10, "A JEFFREY GIBSON GAME..."
SLEEP 2
CLS
END SUB
SUB quit
CLS
border
COLOR 4
center 5, "Quitting so soon?"
SLEEP 2
center 7, "Hope you had fun!!!"
SLEEP 3
game.over
END SUB
SUB ScreenModeError
CLS
PRINT "Unable to run program. You're computer does not meet the basic requirements."
SLEEP 2
SYSTEM
END SUB
SUB slots
CLS
border
COLOR 4
center 5, "SLOT MACHINE"
SLEEP 2
center 7, "This is your chance to find out one of the games hidden codes!!!"
SLEEP 2
center 9, "If your three numbers match each other then you get the code"
SLEEP 2
a = INT(RND * 2) + 1
b = INT(RND * 2) + 1
c = INT(RND * 2) + 1
LOCATE 11, 5
PRINT "Your first number is ";
PRINT a
SLEEP 2
LOCATE 12, 5
PRINT "Your second number is ";
PRINT b
SLEEP 2
LOCATE 13, 5
PRINT "Your third number is ";
PRINT c
SLEEP 2
IF a = b AND a = c THEN GOTO won.it ELSE GOTO sorry
won.it:
center 15, "Very good!!! Just type this at the title screen..."
SLEEP 2
center 17, "u s m c"
SLEEP 2
GOTO over
sorry:
center 15, "Awww! That's too bad! Sorry, better luck next time!!!"
SLEEP 2
over:
END SUB
SUB storyline
CLS
border
COLOR 4
center 5, "One day, you and your love, Vai, were taking a nice"
center 6, "walk through the forest. When suddenly, a man came out"
center 7, "of nowhere right in front of you. He was a scary man,"
center 8, "he had a long black cape and wicked red eyes. He grabbed"
center 9, "Vai and said..."
center 11, "If you want her back you must make it through my dungeon"
center 12, "in the caves."
center 14, "The man suddenly dissappeared out of sight."
DO: LOOP WHILE INKEY$ = ""
CLS
center 5, "The caves? You say to yourself. You don't know where"
center 6, "these caves are. You head back to the village to ask"
center 7, "where you could find these caves."
center 9, "You enter the local pub and sit down next to an old man."
center 10, "Excuse me sir. You say to him. Could you tell me where"
center 11, "I can find the caves."
center 13, "Oh, you can't go there, no one ever makes it back alive."
center 15, "But I really need to go there, a strange man took the love"
center 16, "of my life and I need to rescue her!"
center 18, "Oh, you must be talking about the Dungeon Keeper, he is"
center 19, "never up to any good. I will show you where the caves are."
DO: LOOP WHILE INKEY$ = ""
CLS
center 5, "The old man escorted you to an abandoned road and he told"
center 6, "you to go straight down this road and you will find the caves."
center 8, "You give him many thanks and head off down the road."
center 10, "About an hour later you come across a huge entrance to a cave."
center 11, "This must be it. You say to yourself."
center 13, "You carefully make your way inside..."
DO: LOOP WHILE INKEY$ = ""
title
END SUB
SUB title
CLS 2
COLOR 7
m$ = "o1l35abcdefg"
PRINT "          "
PRINT "           "
PRINT "         "
PRINT "           "
PRINT "          "
PLAY m$: PLAY m$
PRINT
PRINT "      "
PRINT "       "
PRINT "      "
PRINT "       "
PRINT "      "
PLAY m$: PLAY m$
PRINT
PRINT "           "
PRINT "             "
PRINT "                "
PRINT "              "
PRINT "          "
PLAY m$: PLAY m$
PRINT
PRINT "       "
PRINT "         "
PRINT "         "
PRINT "           "
PRINT "          "
PLAY m$: PLAY m$: PLAY m$: PLAY m$
PRINT
PRINT
choice = 1
DO
IF c = 15 THEN c = 0
c = c + 1
LOCATE 26, 1
IF choice = 1 THEN COLOR c ELSE COLOR 8
PRINT "Play game";
IF choice = 2 THEN COLOR c ELSE COLOR 8
PRINT " See Instructions";
IF choice = 3 THEN COLOR c ELSE COLOR 8
PRINT " View Storyline";
IF monster.code = 4 THEN IF choice = 4 THEN COLOR c ELSE COLOR 8
IF monster.code = 4 THEN PRINT " Monsters"
a$ = INKEY$
IF monster.code = 0 THEN IF LCASE$(a$) = "u" THEN monster.code = 1
IF monster.code = 1 THEN IF LCASE$(a$) = "s" THEN monster.code = 2
IF monster.code = 2 THEN IF LCASE$(a$) = "m" THEN monster.code = 3
IF monster.code = 3 THEN IF LCASE$(a$) = "c" THEN COLOR 4: center 25, "MONSTER CODE!!!": SLEEP 2: center 25, " ": monster.code = 4
IF a$ = CHR$(0) + "K" THEN choice = choice - 1
IF a$ = CHR$(0) + "M" THEN choice = choice + 1
IF a$ = CHR$(13) THEN GOTO got.choice
IF monster.code = 4 THEN IF choice = 0 THEN choice = 4
IF monster.code = 4 THEN IF choice = 5 THEN choice = 1
IF monster.code < 4 THEN IF choice = 0 THEN choice = 3
IF monster.code < 4 THEN IF choice = 4 THEN choice = 1
LOOP
got.choice:
SELECT CASE choice
CASE 1: GOTO play.the.game
CASE 2: instructions
CASE 3: storyline
CASE 4: monsterInfo
END SELECT
play.the.game:
END SUB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment