' *********** CHECK README.1ST FIRST *********************
DECLARE SUB GameScreen ()
DIM SHARED Mesta(1 TO 40, 1 TO 20), xb(50), yb(50), xi(50)
RANDOMIZE TIMER
PLAY "mb"
CLS
GameScreen
x = 2
y = 2
Mesta(2, 2) = 2
b = 0: c = 0
Tapot = 6
FOR i = 0 TO 5
xi(i) = 1
NEXT
COLOR 10
LOCATE y, x: PRINT CHR$(2)
DO
a = INP(&H60)
z$ = INKEY$
PALETTE 0, 0
b = b + 1
' right arrow-key
IF (a = 77) AND (b > 5) THEN
LOCATE y, x: PRINT " "
Mesta(x, y) = 0
x = x + 1
IF Mesta(x, y) = 3 THEN GOTO Loppu
IF Mesta(x, y) = 1 THEN
FOR i = x + 1 TO 40
IF Mesta(i, y) = 3 THEN
IF Mesta(i + 1, y) = 0 OR Mesta(i + 1, y) = 3 THEN
x = x - 1
GOSUB 13
END IF
IF Mesta(i + 1, y) = 1 OR i = 39 THEN
PLAY "L6 o0 c"
Tapot = Tapot - 1
FOR al = 1 TO 5
IF xb(al) = i AND yb(al) = y THEN xi(al) = 0: LOCATE yb(al), xb(al): COLOR 2: PRINT "█": Mesta(i, y) = 1: GOSUB 13
NEXT
END IF
END IF
IF i = 40 THEN
x = x - 1
GOSUB 13
END IF
IF Mesta(i, y) = 0 THEN
Mesta(i, y) = 1
COLOR 2
LOCATE y, i
PRINT "█"
EXIT FOR
END IF
NEXT
END IF
13
IF x > 39 THEN x = 39
Mesta(x, y) = 2
COLOR 10
LOCATE y, x: PRINT CHR$(2)
b = 0
END IF
' left arrow-key
IF (a = 75) AND (b > 5) THEN
LOCATE y, x: PRINT " "
Mesta(x, y) = 0
COLOR 2
x = x - 1
IF Mesta(x, y) = 3 THEN GOTO Loppu
IF Mesta(x, y) = 1 THEN
FOR i = x - 1 TO 1 STEP -1
IF Mesta(i, y) = 3 THEN
IF Mesta(i - 1, y) = 0 OR Mesta(i - 1, y) = 3 THEN
x = x + 1
GOSUB 13
END IF
IF Mesta(i - 1, y) = 1 OR i = 2 THEN
Tapot = Tapot - 1
PLAY "L6 o0 c"
FOR al = 1 TO 5
IF xb(al) = i AND yb(al) = y THEN xi(al) = 0: LOCATE yb(al), xb(al): COLOR 2: PRINT "█": Mesta(i, y) = 1: GOSUB 13
NEXT
END IF
END IF
IF i = 1 THEN
x = x + 1
GOSUB 13
END IF
IF Mesta(i, y) = 0 THEN
Mesta(i, y) = 1
COLOR 2
LOCATE y, i
PRINT "█"
EXIT FOR
END IF
NEXT
END IF
14
IF x < 2 THEN x = 2
Mesta(x, y) = 2
COLOR 10
LOCATE y, x: PRINT CHR$(2)
b = 0
END IF
' down arrow-key
IF (a = 80) AND (b > 5) THEN
LOCATE y, x: PRINT " "
Mesta(x, y) = 0
COLOR 2
y = y + 1
IF Mesta(x, y) = 3 THEN GOTO Loppu
IF Mesta(x, y) = 1 THEN
FOR i = y + 1 TO 20
IF Mesta(x, i) = 3 THEN
IF Mesta(x, i + 1) = 0 OR Mesta(x, i + 1) = 3 THEN
y = y - 1
GOSUB 13
END IF
IF Mesta(x, i + 1) = 1 OR i = 19 THEN
Tapot = Tapot - 1
PLAY "L6 o0 c"
FOR al = 1 TO 5
IF xb(al) = x AND yb(al) = i THEN xi(al) = 0: LOCATE yb(al), xb(al): COLOR 2: PRINT "█": Mesta(x, i) = 1: GOSUB 13
NEXT
END IF
END IF
IF i = 20 THEN
y = y - 1
GOSUB 13
END IF
IF Mesta(x, i) = 0 THEN
Mesta(x, i) = 1
COLOR 2
LOCATE i, x
PRINT "█"
EXIT FOR
END IF
NEXT
END IF
15
IF y > 19 THEN y = 19
Mesta(x, y) = 2
COLOR 10
LOCATE y, x: PRINT CHR$(2)
b = 0
END IF
' up arrow-key
IF (a = 72) AND (b > 5) THEN
LOCATE y, x: PRINT " "
Mesta(x, y) = 0
y = y - 1
IF Mesta(x, y) = 3 THEN GOTO Loppu
IF Mesta(x, y) = 1 THEN
FOR i = y - 1 TO 1 STEP -1
IF Mesta(x, i) = 3 THEN
IF Mesta(x, i - 1) = 0 OR Mesta(x, i - 1) = 3 THEN
y = y + 1
GOSUB 13
END IF
IF Mesta(x, i - 1) = 1 OR i = 2 THEN
Tapot = Tapot - 1
PLAY "L6 o0 c"
FOR al = 1 TO 5
IF xb(al) = x AND yb(al) = i THEN xi(al) = 0: LOCATE yb(al), xb(al): COLOR 2: PRINT "█": Mesta(x, i) = 1: GOSUB 13
NEXT
END IF
END IF
IF i = 1 THEN
y = y + 1
GOSUB 13
END IF
IF Mesta(x, i) = 0 THEN
Mesta(x, i) = 1
COLOR 2
LOCATE i, x
PRINT "█"
EXIT FOR
END IF
NEXT
END IF
16
IF y < 2 THEN y = 2
Mesta(x, y) = 2
COLOR 10
LOCATE y, x: PRINT CHR$(2)
b = 0
END IF
' Beast's moving
IF c > 70 THEN
FOR i = 1 TO 5
IF xi(i) = 1 THEN
LOCATE yb(i), xb(i): PRINT " "
Mesta(xb(i), yb(i)) = 0
IF xb(i) < x THEN xu = xb(i) + 1
IF yb(i) < y THEN yu = yb(i) + 1
IF xb(i) > x THEN xu = xb(i) - 1
IF yb(i) > y THEN yu = yb(i) - 1
IF xb(i) = x THEN xu = x
IF yb(i) = y THEN yu = y
IF Mesta(xu, yu) = 2 THEN
LOCATE yu, xu:
COLOR 14
PRINT "H"
GOTO Loppu
END IF
FOR yyy = yb(i) - 1 TO yb(i) + 1
FOR xxx = xb(i) - 1 TO xb(i) + 1
IF Mesta(xxx, yyy) = 0 THEN GOSUB 141
NEXT
NEXT
Mesta(xb(i), yb(i)) = 0
xi(i) = 0
LOCATE yb(i), xb(i)
PRINT " "
GOSUB 35
141
IF Mesta(xu, yu) > 0 THEN
xu = xb(i) + INT(RND * 3) - 1
yu = yb(i) + INT(RND * 3) - 1
IF Mesta(xu, yu) > 0 THEN
LOCATE yb(i), xb(i):
COLOR 14
PRINT "H"
GOSUB 12
END IF
END IF
xb(i) = xu: yb(i) = yu
Mesta(xb(i), yb(i)) = 3
COLOR 14
LOCATE yb(i), xb(i): PRINT "H"
12
Mesta(xb(i), yb(i)) = 3
35
END IF
NEXT
FOR i = 1 TO 5
IF xi(i) = 1 THEN PLAY "L18 o0 e": EXIT FOR
NEXT
c = 0
END IF
IF Tapot = 1 THEN GOTO Jees
c = c + 1
LOOP UNTIL INP(&H60) = 1
CLS
COLOR 14
PRINT " H I R V I Ö Betaversio - By Spirit / Illumination"
COLOR 7
END
Jees:
FOR i = 1 TO 50
PALETTE 0, 0
NEXT
CLS
LOCATE 12, 25
COLOR 14
PRINT "Onnittelut! pääsit pelin läpi ! ! !"
PLAY "mf"
PLAY "o2 L8 f L16 c L16 c L8 d c P8 e f"
FOR i = 1 TO 50
PALETTE 0, 0
NEXT
CLS
COLOR 14
PRINT " H I R V I Ö Betaversio - By Spirit / Illumination"
COLOR 7
END
Loppu:
PLAY "mf"
FOR i = 200 TO 50 STEP -1
SOUND i, i / 1000
NEXT
CLS
LOCATE 12, 35
COLOR 4
PRINT "KUOLIT!"
FOR i = 1 TO 100
PALETTE 0, 0
NEXT
CLS
COLOR 14
PRINT
PRINT " H I R V I Ö Betaversio - By Spirit / Illumination"
COLOR 7
SUB GameScreen
COLOR 4
LOCATE 1
PRINT " █▓ █▓"
PRINT " █▓ █▓ █▓ ███▓ █▓ █▓ █▓ ██▓░ "
PRINT " █▓░█▓░█▓░█▓░█▓ █▓░█▓░█▓░█▓░█▓░"
PRINT " ████▓░█▓░███▓░░█▓░█▓░█▓░█▓░█▓░"
PRINT " █▓░█▓░█▓░█▓░█▓░█▓█▓░░█▓░█▓░█▓░"
PRINT " █▓░█▓░█▓░█▓░█▓░ █▓░░ █▓░ ██▓░░ ß"
PRINT " ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░░ "
PRINT
COLOR 7
PRINT
PRINT " Nuolet - ohjaa ukkoa"
PRINT " Hirviöt kuolevat jäädessään kahden"
PRINT " seinän väliin. Tapa kaikki hirviöt!"
PRINT
PRINT " "; : COLOR 10: PRINT CHR$(2); : COLOR 7: PRINT " - sinä "; : COLOR 14: PRINT "H"; : COLOR 7: PRINT " - Hirviö"
PRINT
PRINT " Esc - Lopeta"
COLOR 14
FOR i = 1 TO 40
Mesta(i, 1) = 4
Mesta(i, 20) = 4
LOCATE 1, i: PRINT "▒"
LOCATE 20, i: PRINT "▒"
NEXT
FOR i = 1 TO 20
Mesta(1, i) = 4
Mesta(40, i) = 4
LOCATE i, 1: PRINT "▒"
LOCATE i, 40: PRINT "▒"
NEXT
COLOR 2
FOR i = 1 TO 200
10
x = INT(RND * 38) + 2
y = INT(RND * 18) + 2
IF Mesta(x, y) = 1 THEN GOSUB 10
Mesta(x, y) = 1
LOCATE y, x: PRINT "█"
NEXT
COLOR 14
FOR i = 1 TO 5
11
x = INT(RND * 28) + 12
y = INT(RND * 10) + 10
IF Mesta(x, y) = 3 THEN GOSUB 11
xb(i) = x
yb(i) = y
xi(i) = 0
Mesta(x, y) = 3
LOCATE y, x: PRINT "H"
NEXT
xi(1) = 1
END SUB