my code for easy understanding
Code: Select all
CLS
DIM field$(15)
field$(0) = " "
field$(1) = " $$$"
field$(2) = "| | "
field$(3) = "| | "
field$(4) = "| | "
field$(5) = "| | "
field$(6) = "| | "
field$(7) = "| | "
field$(8) = "| | "
field$(9) = "| | "
field$(10) = "| | "
field$(11) = "| | "
field$(12) = "| | "
field$(13) = "| | "
field$(14) = "| | "
field$(15) = "|$$$| "
DIM intropage$(100)
DATA 15,00,00,00,15,00,15,15,15,00,15,00,00,00,00,15,15,00,00,15,15,00,00,00,15,00,15,00,00,15,15,15,00,00,00
DATA 15,00,00,00,15,00,15,00,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,00,00,00,00,00
DATA 15,00,15,00,15,00,15,15,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,15,00,00,00,00
DATA 15,00,15,00,15,00,15,00,00,00,15,00,00,00,15,00,00,00,15,00,00,15,00,15,00,15,00,15,00,15,00,00,00,00,00
DATA 00,15,00,15,00,00,15,15,15,00,15,15,15,00,00,15,15,00,00,15,15,00,00,15,00,00,00,15,00,15,15,15,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,15,15,15,00,15,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,15,00,00,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,15,00,00,15,15,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
DATA 00,00,00,15,15,00,00,15,00,00,15,00,15,00,00,15,00,00,15,00,00,15,00,00,00,15,00,00,15,00,00,15,00,15,00
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,15,00,15,00,15,00,15,00,15,00,00,00,15,00,15,00,15,00,15,00,15,00
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,15,15,15,00,15,15,15,00,15,00,15,00,15,00,15,15,15,00,00,15,00,00
DATA 00,00,00,15,15,00,00,15,00,00,15,00,15,00,15,15,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,00,15,00,00
DATA 00,00,00,15,00,15,00,15,00,00,15,00,15,00,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,15,00,00,15,00,00
DATA 00,00,00,15,00,15,00,00,15,15,00,00,15,00,00,15,00,15,00,15,00,00,15,00,15,00,00,15,00,15,00,00,15,00,00
data1 = 18
data2 = 35
hx = 25
hy = 16
kp$ = INKEY$
intro:
SCREEN 13
CLS
DO
FOR y = 0 TO 18
FOR x = 0 TO 35
READ intropage$
PSET (X,y), intropage$
NEXT X
NEXT y
hl% = 20
kp$ = INKEY$
COLOR INT(RND * 15) + 2
LOCATE 8, 10
PRINT "Welcome to RUN AWAY!"
LOCATE 14, 10
COLOR 15
PRINT "1 Play"
LOCATE 16, 10
COLOR 6
PRINT "2 Instructions"
LOCATE 18, 10
COLOR 3
PRINT "3 Quit"
IF kp$ = "1" THEN GOTO game
IF kp$ = "2" THEN GOTO instruc
IF kp$ = "3" THEN END
LOOP
instruc:
CLS
COLOR 15
FOR d = 1 TO 5
PRINT
NEXT d
PRINT "Oneday the guards of a town caught a man trying to a steal an apple, so then he had to RUN AWAY! (This is where YOU come in =>)"
PRINT
PRINT
COLOR 17
PRINT "CONTROLS"
COLOR 15
PRINT "w = up"
PRINT "s = down"
PRINT "a = left"
PRINT "d = right"
PRINT
PRINT "q = quit"
FOR f = 1 TO 10
PRINT
NEXT f
PRINT "Press Q to go back <--"
DO
kp$ = INKEY$
COLOR 2
LOCATE 10, 25
PRINT ".8. = YOU"
LOCATE 12, 25
COLOR 4
PRINT "|8. = ENEMY!"
IF kp$ = "q" THEN GOTO intro
LOOP
game:
timex = 54
timey = 2
TIME = 0
lvlx = 54
lvly = 5
lvl = 1
x = 48
y = 7
enemyx = 5
enemyy = 7
enemyx2 = 10
enemyy2 = 5
health = 20
CLS
DO
LOCATE 1, 1
FOR mz = 1 TO 15
COLOR 7
PRINT field$(mz)
NEXT mz
LOCATE lvly, lvlx
COLOR 15
PRINT "lvl :"; lvl
LOCATE hy, hx
COLOR 10
PRINT health; "/"; hl%
LOCATE y, x
COLOR 15
PRINT ".8."
LOCATE enemyy, enemyx
COLOR 12
PRINT "|8."
IF ((x = enemyx) AND (y = enemyy)) THEN
health = health - 1
END IF
IF TIME = 120 THEN
LOCATE enemyy2, enemyx2
COLOR 12
PRINT "|8."
ELSE
GOTO pause
END IF
IF ((x = enemyx2) AND (y = enemyy2)) THEN
health = health - 1
END IF
IF TIME = 120 THEN
lvl = lvl + 1
PRINT lvl
ELSE
GOTO pause
END IF
oldx = x
oldy = y
pause:
'pause
DO
kp$ = INKEY$
LOOP UNTIL kp$ <LOCATE> 1 THEN y = y - 1
IF kp$ = "s" THEN y = y + 1
IF kp$ = "a" THEN x = x - 1
IF kp$ = "d" AND x + 3 < 52 THEN x = x + 1
IF MID$(field$(y), x, 1) = "|" THEN
LOCATE y, x
PRINT "|"
x = oldx
y = oldy
END IF
IF MID$(field$(y), x, 1) = "$$$" THEN
LOCATE y, x
PRINT "$$$"
x = oldx
y = oldy
END IF
IF health = 0 THEN
GOTO deathmessage
ELSE
GOTO gai
END IF
deathmessage:
DO
kp$ = INKEY$
LOCATE 8, 10
COLOR 12
PRINT ",`YOU'RE DEAD!'."
LOCATE 9, 10
COLOR 4
PRINT "`, ',"
LOCATE 12, 10
COLOR 15
PRINT "Press space to try again"
LOCATE 13, 10
PRINT "Or press Q to quit"
IF kp$ = " " THEN GOTO game
IF kp$ = CHR$(113) THEN GOTO intro
LOOP
gai:
' ghost AI
oldy = enemyy
oldx = enemyx
IF RND < .3 THEN
SELECT CASE enemyx
CASE IS <x> x
enemyx = enemyx - 1
END SELECT
SELECT CASE enemyy
CASE IS <y> y
enemyy = enemyy - 1
END SELECT
IF MID$(field$(enemyy), enemyx, 1) = "$$$" THEN
enemyx = oldx
enemyy = oldy
LOCATE enemyy, enemyx
PRINT "$$$"
END IF
END IF
gai2:
'ghost2 AI
oldy = enemyy2
oldx = enemyx2
SELECT CASE enemyx2
CASE IS <x> x
enemyx2 = enemyx2 - 1
END SELECT
SELECT CASE enemyy2
CASE IS <y> y
enemyy2 = enemyy2 - 1
END SELECT
IF MID$(field$(enemyy2), enemyx2, 1) = "$$$" THEN
enemyx2 = oldx
enemyy2 = oldy
LOCATE enemyy2, enemyx2
PRINT "$$$"
END IF
LOOP