DECLARE FUNCTION Zufall! (tief!, hoch!)
DECLARE SUB kimalen ()
DECLARE FUNCTION blocked! (i1!, i2!)
DECLARE SUB KI ()
DECLARE SUB Player ()
DECLARE SUB High ()
DECLARE SUB Winwin ()
DECLARE SUB Messen ()
DECLARE SUB Optio ()
DECLARE SUB Prefer ()
DECLARE SUB Logo2 ()
DECLARE SUB Arena ()
DECLARE SUB Logo ()
DECLARE SUB Ginit ()

'Catch the Kreis
'by Dregen Rocks
'copyright 2001
'Version 1.21

TYPE Spielfeld
    xvorhanden AS SINGLE
    ovorhanden AS SINGLE
    bvorhanden AS SINGLE
END TYPE
TYPE Eintrag
    callsign AS STRING * 10
    bestzeit AS INTEGER
END TYPE
TYPE KI
    lmov AS SINGLE
    rmov AS SINGLE
    umov AS SINGLE
    dmov AS SINGLE
    xdir AS SINGLE
    odir AS SINGLE
END TYPE

DIM SHARED kreis AS KI
DIM SHARED pganz, p AS LONG    'Pausenwerte

DIM SHARED sx(0 TO 1) AS SINGLE
DIM SHARED sy(0 TO 1) AS SINGLE

DIM SHARED Heintrag(0 TO 10, 0 TO 10) AS Eintrag
DIM SHARED box(-1 TO 29, -1 TO 19) AS Spielfeld
DIM SHARED symbol(0 TO 100, 0 TO 1) AS INTEGER
DIM SHARED x, y, x2, y2 AS INTEGER

DIM SHARED pacman(0 TO 500, 1 TO 2) AS INTEGER
DIM SHARED pixelpark(1500) AS INTEGER

DIM SHARED letter(0 TO 200, 1 TO 15)
DIM SHARED posx(1 TO 15)
DIM SHARED posy(1 TO 15)
DIM SHARED posd(1 TO 15)
                                
DIM SHARED feld AS SINGLE
DIM SHARED Zeit, zz1, zz2 AS LONG

DIM SHARED bfaktor AS SINGLE
'oben,rechts,unten,links
DIM SHARED sight(1 TO 4, 1 TO 5)

Ginit
Logo
Logo2
Optio

Game:

'Spiel initialisieren
Arena

Zeit = 0
bremse = 0
treffer = 0
gmove2 = 5

box(0, 0).xvorhanden = 1
box(28, 17).ovorhanden = 1
sx(0) = 0
sy(0) = 0
sx(1) = 28
sy(1) = 17


'Hauptschleife
DO

    'Die Protagonisten
    Player
    CALL KI
    IF bremse = bfaktor THEN
        CALL kimalen
        bremse = 0
    END IF

    'Status
    Messen

    'malen
    FOR x = 0 TO 28
        FOR y = 0 TO 17
            IF box(x, y).xvorhanden = 1 THEN
                PUT (x * 11 + 2, y * 11 + 2), symbol(0, 0), PSET
            END IF
            IF box(x, y).ovorhanden = 1 THEN
                PUT (x * 11 + 2, y * 11 + 2), symbol(0, 1), PSET
            END IF
            IF box(x, y).xvorhanden = 1 AND box(x, y).ovorhanden = 1 THEN
                treffer = 1
                box(x, y).xvorhanden = 0
                box(x, y).ovorhanden = 0
            END IF
        NEXT y
    NEXT x

    IF bfaktor <> 0 THEN bremse = bremse + 1
LOOP UNTIL treffer = 1

Winwin

Optio

GOTO Game

Testsymbol:
DATA 14,0,0,0,0,0,0,14
DATA 0,14,0,0,0,0,14,0
DATA 0,0,14,0,0,14,0,0
DATA 0,0,0,14,14,0,0,0
DATA 0,0,0,14,14,0,0,0
DATA 0,0,14,0,0,14,0,0
DATA 0,14,0,0,0,0,14,0
DATA 14,0,0,0,0,0,0,14

Gegner:
DATA 0,0,4,4,4,4,0,0
DATA 0,4,0,0,0,0,4,0
DATA 4,0,0,0,0,0,0,4
DATA 4,0,0,0,0,0,0,4
DATA 4,0,0,0,0,0,0,4
DATA 4,0,0,0,0,0,0,4
DATA 0,4,0,0,0,0,4,0
DATA 0,0,4,4,4,4,0,0

pacman1:
DATA 0,0,0,0,14,14,0,0,0,0
DATA 0,0,14,14,14,14,14,14,0,0
DATA 0,14,14,14,14,14,14,14,14,0
DATA 0,14,14,14,14,14,15,14,14,0
DATA 14,14,14,14,14,15,1,15,14,14
DATA 14,14,14,14,14,14,15,14,14,14
DATA 14,14,14,14,14,14,14,14,14,14
DATA 14,14,14,14,14,14,14,14,14,14
DATA 0,14,14,14,14,14,14,14,14,0
DATA 0,14,14,14,14,14,14,14,14,0
DATA 0,0,14,14,14,14,14,14,0,0
DATA 0,0,0,14,14,14,14,0,0,0
DATA 0,0,0,0,14,14,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0

Pacman2:
DATA 0,0,0,0,14,14,0,0,0,0
DATA 0,0,14,14,15,14,14,14,0,0
DATA 0,14,14,15,1,15,14,0,0,0
DATA 0,14,14,14,15,14,0,0,0,0
DATA 14,14,14,14,14,0,0,0,0,0
DATA 14,14,14,14,0,0,0,0,0,0
DATA 14,14,14,0,0,0,0,0,0,0
DATA 14,14,14,0,0,0,0,0,0,0
DATA 0,14,14,14,0,0,0,0,0,0
DATA 0,14,14,14,14,14,0,0,0,0
DATA 0,0,14,14,14,14,14,14,14,0
DATA 0,0,0,14,14,14,14,14,0,0
DATA 0,0,0,0,14,14,14,0,0,0
DATA 0,0,0,0,14,14,0,0,0,0

letters:
DATA "C",14,"a",14,"t",14,"c",14,"h",14
DATA " ",0
DATA "t",1,"h",1,"e",1
DATA " ",0
DATA "K",4, "r",4,"e",4,"i",4,"s",4

Highscore:
DATA 1,40,80,120,160,200,240,280,320,360
DATA 401, 405, 409, 413, 417, 421, 425, 429, 433, 437

Dungeons:

d0:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d1:
DATA 0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0
DATA 0,1,0,1,0,0,0,1,0,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,0,0,0,0,0
DATA 0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0
DATA 0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0
DATA 0,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,1,0,1,0,1,0,0,0
DATA 0,0,0,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,1,0,0,0,1,0,1,0,0,0
DATA 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,0
DATA 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0
DATA 0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0

d2:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,0,0,1
DATA 1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,1
DATA 1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,1,1,0,1
DATA 1,0,0,1,0,1,1,1,0,0,1,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1
DATA 1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,1
DATA 1,1,1,0,0,1,0,0,1,0,1,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,0,0,1
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1,0,0,1,1,1,0,0,0
DATA 0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0
DATA 0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0
DATA 0,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0
DATA 0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,1,0,0,1,0,0,1,1,0,0,0,1,1,1,0,1,0,0,1,0,1,1,1,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d3:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,1,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d4:
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0
DATA 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,1,0,0,1,1,0,0,1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,0,0,0,0
DATA 0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,1,0,1,0,1,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,0,1,0,0,1,0,1,0,0,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0
DATA 0,1,0,1,0,1,1,0,1,0,1,0,0,0,1,0,1,1,0,1,0,1,0,0,0,0,0,0,0
DATA 0,1,0,1,0,1,1,1,1,0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,0,0,0
DATA 0,1,0,1,0,1,0,1,1,0,1,0,0,0,1,0,1,0,1,1,0,1,0,0,0,0,0,0,0
DATA 0,0,1,0,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,1,0,1,1,1,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d5:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,1,0,0
DATA 0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0
DATA 0,0,1,1,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,0,1,0,1,0,1,1,0,0,0
DATA 0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,0,0
DATA 0,0,1,1,1,0,1,0,0,0,1,0,1,1,1,0,1,1,1,0,1,1,0,0,1,1,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0
DATA 0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0
DATA 0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0
DATA 0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0
DATA 0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0
DATA 0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0
DATA 0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0
DATA 0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0
DATA 0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0
DATA 0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d6:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,1,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d7:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,1,0,1,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0
DATA 0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0
DATA 0,1,1,0,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0
DATA 0,1,1,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,1,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,0,1,0,1,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d8:
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,0,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0
DATA 0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0

d9:
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

d10:
DATA 0,1,1,1,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0
DATA 0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0
DATA 0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,0,0,0,0,1,0,0
DATA 0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,1,1,0
DATA 0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0
DATA 0,1,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,1,1,0,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0
DATA 0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,0,0,0,0,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0
DATA 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
DATA 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

SUB Arena
CLS

FOR x = 0 TO 320 STEP 11
    LINE (x, 0)-(x, 198), 9
    ptime! = TIMER: WHILE ptime! = TIMER: WEND
NEXT x
FOR y = 0 TO 200 STEP 11
    LINE (0, y)-(319, y), 10
    ptime! = TIMER: WHILE ptime! = TIMER: WEND
NEXT y

SELECT CASE feld
    CASE IS = 0
        RESTORE d0
    CASE IS = 1
        RESTORE d1
    CASE IS = 2
        RESTORE d2
    CASE IS = 3
        RESTORE d3
    CASE IS = 4
        RESTORE d4
    CASE IS = 5
        RESTORE d5
    CASE IS = 6
        RESTORE d6
    CASE IS = 7
        RESTORE d7
    CASE IS = 8
        RESTORE d8
    CASE IS = 9
        RESTORE d9
    CASE IS = 10
        RESTORE d10
END SELECT

FOR y = 0 TO 17
    FOR x = 0 TO 28
        READ b
        box(x, y).bvorhanden = b
        IF b = 1 THEN
            LINE (x * 11, y * 11)-(x * 11 + 11, y * 11 + 11), 6, BF
        END IF
    NEXT x
NEXT y

                          
END SUB

FUNCTION blocked (x, y)
IF x < 0 OR y < 0 THEN
    blocked = 1
    EXIT FUNCTION
ELSEIF x > 28 OR y > 17 THEN
    blocked = 1
    EXIT FUNCTION
ELSEIF box(x, y).bvorhanden = 1 THEN
    blocked = 1
    EXIT FUNCTION
ELSEIF box(x, y).xvorhanden = 1 THEN
    blocked = 1
    EXIT FUNCTION
ELSE
    blocked = 0
END IF


END FUNCTION

SUB Ginit
CLS
SCREEN 13

'Pausenwert bestimmen
p = 0
FOR i = 1 TO 21
    z = 0
    ptime! = TIMER
    WHILE ptime! = TIMER
        z = z + 1
    WEND
    IF i <> 1 THEN p = p + z
NEXT i
pganz = p / 20                    'Pausenwerte

'Symbole einlesen
FOR i% = 0 TO 1
    FOR x = 0 TO 7
        FOR y = 0 TO 7
            READ bit
            PSET (x, y), bit
        NEXT y
    NEXT x
    GET (0, 0)-(7, 7), symbol(0, i%)
    RESTORE Gegner:
NEXT i%

RESTORE pacman1
FOR i1 = 1 TO 2
FOR i2 = 0 TO 13
FOR i3 = 0 TO 9
    READ pixel
    PSET (i3, i2), pixel
NEXT i3
NEXT i2
GET (0, 0)-(11, 11), pacman(0, i1)
NEXT i1

RESTORE letters
FOR i = 1 TO 15
    READ l$
    READ c%
    COLOR c%
    LOCATE 1, 1: PRINT l$
    GET (0, 0)-(7, 7), letter(0, i)
NEXT i

OPEN "highsc0.dat" FOR INPUT AS #1
OPEN "highsc1.dat" FOR INPUT AS #2
OPEN "highsc2.dat" FOR INPUT AS #3
OPEN "highsc3.dat" FOR INPUT AS #4
OPEN "highsc4.dat" FOR INPUT AS #5
OPEN "highsc5.dat" FOR INPUT AS #6
OPEN "highsc6.dat" FOR INPUT AS #7
OPEN "highsc7.dat" FOR INPUT AS #8
OPEN "highsc8.dat" FOR INPUT AS #9
OPEN "highsc9.dat" FOR INPUT AS #10
OPEN "highsc10.dat" FOR INPUT AS #11

FOR d = 1 TO 11
FOR i = 1 TO 10
    IF EOF(d) = -1 THEN EXIT FOR
    INPUT #d, eing$
    Heintrag(i, d - 1).callsign = eing$
NEXT i
FOR i = 1 TO 10
    IF EOF(d) = -1 THEN EXIT FOR
    INPUT #d, Heintrag(i, d - 1).bestzeit
NEXT i
CLOSE d
NEXT d
END SUB

SUB High
DO
    COLOR 15
    LOCATE 15, 1
    INPUT "What Field No. (0-10): ", eing$
LOOP UNTIL VAL(eing$) > -1 AND VAL(eing$) < 11
feld = VAL(eing$)
CLS
LOCATE 1, 13: COLOR 3: PRINT "Field No. "; feld
COLOR 15
LOCATE 5, 12: PRINT "|     Name      |": LOCATE 5, 27: PRINT "| Time"
LOCATE 6, 5: PRINT "---------------------------------"
FOR i = 1 TO 10
    LOCATE i + 6, 6: COLOR 12: PRINT i; "."
    LOCATE i + 6, 12: COLOR 15: PRINT "|"
    LOCATE i + 6, 15: COLOR 14: PRINT Heintrag(i, feld).callsign
    LOCATE i + 6, 27: COLOR 15: PRINT "|"
    LOCATE i + 6, 29: COLOR 4: PRINT Heintrag(i, feld).bestzeit
NEXT i
COLOR 14
LOCATE 20, 10: PRINT "(Taste drcken)"
DO: LOOP WHILE INKEY$ = ""

END SUB

SUB KI

kreis.xdir = 0
kreis.odir = 0

'wo kann man hin?
IF blocked(sx(1) - 1, sy(1)) = 1 THEN kreis.lmov = 0 ELSE kreis.lmov = 1
IF blocked(sx(1) + 1, sy(1)) = 1 THEN kreis.rmov = 0 ELSE kreis.rmov = 1
IF blocked(sx(1), sy(1) + 1) = 1 THEN kreis.dmov = 0 ELSE kreis.dmov = 1
IF blocked(sx(1), sy(1) - 1) = 1 THEN kreis.umov = 0 ELSE kreis.umov = 1

'wo ist x?
z1 = sx(0) - sx(1)
z2 = sy(0) - sy(1)

SELECT CASE z1
    CASE IS > 0
        zh = 1
    CASE IS = 0
        zh = 0
    CASE IS < 0
        zh = -1
END SELECT
SELECT CASE z2
    CASE IS > 0
        zv = 1
    CASE IS = 0
        zv = 0
    CASE IS < 0
        zv = -1
END SELECT

IF zh = -1 AND zv = -1 THEN kreis.xdir = 7
IF zh = -1 AND zv = 0 THEN kreis.xdir = 4
IF zh = -1 AND zv = 1 THEN kreis.xdir = 1
IF zh = 0 AND zv = -1 THEN kreis.xdir = 8
IF zh = 0 AND zv = 1 THEN kreis.xdir = 2
IF zh = 1 AND zv = -1 THEN kreis.xdir = 9
IF zh = 1 AND zv = 0 THEN kreis.xdir = 6
IF zh = 1 AND zv = 1 THEN kreis.xdir = 3

'so, in welche Richtung nun?

SELECT CASE kreis.xdir
    CASE IS = 1
        IF kreis.rmov > 0 OR kreis.umov > 0 THEN
            IF kreis.rmov > 0 AND kreis.umov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 8
                    EXIT SUB
                ELSE
                    kreis.odir = 6
                    EXIT SUB
                END IF
            END IF
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        END IF
        IF kreis.lmov > 0 OR kreis.dmov > 0 THEN
            IF kreis.lmov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 2
                    EXIT SUB
                ELSE
                    kreis.odir = 4
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        END IF
    CASE IS = 2
        IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        IF kreis.lmov > 0 OR kreis.rmov > 0 THEN
            IF kreis.lmov > 0 AND kreis.rmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 4
                    EXIT SUB
                ELSE
                    kreis.odir = 6
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        END IF
    CASE IS = 3
        IF kreis.lmov > 0 OR kreis.umov > 0 THEN
            IF kreis.lmov > 0 AND kreis.umov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 8
                    EXIT SUB
                ELSE
                    kreis.odir = 4
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        END IF
        IF kreis.rmov > 0 OR kreis.dmov > 0 THEN
            IF kreis.rmov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 2
                    EXIT SUB
                ELSE
                    kreis.odir = 6
                    EXIT SUB
                END IF
            END IF
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        END IF
    CASE IS = 4
        IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
        IF kreis.umov > 0 OR kreis.dmov > 0 THEN
            IF kreis.umov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 8
                    EXIT SUB
                ELSE
                    kreis.odir = 2
                    EXIT SUB
                END IF
            END IF
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
        END IF
    CASE IS = 6
        IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
        IF kreis.umov > 0 OR kreis.dmov > 0 THEN
            IF kreis.umov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 8
                    EXIT SUB
                ELSE
                    kreis.odir = 2
                    EXIT SUB
                END IF
            END IF
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
        END IF
    CASE IS = 7
        IF kreis.rmov > 0 OR kreis.dmov > 0 THEN
            IF kreis.rmov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 6
                    EXIT SUB
                ELSE
                    kreis.odir = 2
                    EXIT SUB
                END IF
            END IF
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        END IF
        IF kreis.lmov > 0 OR kreis.umov > 0 THEN
            IF kreis.lmov > 0 AND kreis.umov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 4
                    EXIT SUB
                ELSE
                    kreis.odir = 8
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        END IF
    CASE IS = 8
        IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        IF kreis.lmov > 0 OR kreis.rmov > 0 THEN
            IF kreis.lmov > 0 AND kreis.rmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 4
                    EXIT SUB
                ELSE
                    kreis.odir = 6
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        END IF
    CASE IS = 9
        IF kreis.lmov > 0 OR kreis.dmov > 0 THEN
            IF kreis.lmov > 0 AND kreis.dmov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 6
                    EXIT SUB
                ELSE
                    kreis.odir = 4
                    EXIT SUB
                END IF
            END IF
            IF kreis.lmov > 0 THEN kreis.odir = 4: EXIT SUB
            IF kreis.dmov > 0 THEN kreis.odir = 2: EXIT SUB
        END IF
        IF kreis.rmov > 0 OR kreis.umov > 0 THEN
            IF kreis.rmov > 0 AND kreis.umov > 0 THEN
                IF Zufall(0, 1) THEN
                    kreis.odir = 6
                    EXIT SUB
                ELSE
                    kreis.odir = 8
                    EXIT SUB
                END IF
            END IF
            IF kreis.rmov > 0 THEN kreis.odir = 6: EXIT SUB
            IF kreis.umov > 0 THEN kreis.odir = 8: EXIT SUB
        END IF
END SELECT


END SUB

SUB kimalen
SELECT CASE kreis.odir
    CASE IS = 8
        LINE (sx(1) * 11 + 2, sy(1) * 11 + 2)-(sx(1) * 11 + 10, sy(1) * 11 + 10), 0, BF
        box(sx(1), sy(1)).ovorhanden = 0
        sy(1) = sy(1) - 1 'hoch
        box(sx(1), sy(1)).ovorhanden = 1
    CASE IS = 4
        LINE (sx(1) * 11 + 2, sy(1) * 11 + 2)-(sx(1) * 11 + 10, sy(1) * 11 + 10), 0, BF
        box(sx(1), sy(1)).ovorhanden = 0
        sx(1) = sx(1) - 1 'links
        box(sx(1), sy(1)).ovorhanden = 1
    CASE IS = 2
        LINE (sx(1) * 11 + 2, sy(1) * 11 + 2)-(sx(1) * 11 + 10, sy(1) * 11 + 10), 0, BF
        box(sx(1), sy(1)).ovorhanden = 0
        sy(1) = sy(1) + 1 'unten
        box(sx(1), sy(1)).ovorhanden = 1
    CASE IS = 6
        LINE (sx(1) * 11 + 2, sy(1) * 11 + 2)-(sx(1) * 11 + 10, sy(1) * 11 + 10), 0, BF
        box(sx(1), sy(1)).ovorhanden = 0
        sx(1) = sx(1) + 1 'rechts
        box(sx(1), sy(1)).ovorhanden = 1
END SELECT
END SUB

SUB Logo

CLS
LOCATE 10, 10
COLOR 15
PRINT "-----------------------"
LOCATE 11, 11
COLOR 4
PRINT "Dregen Rocks presents"
LOCATE 12, 10
COLOR 15
PRINT "-----------------------"
COLOR 4: LOCATE 23, 2
PRINT "http://www.dregenrocks.de"


IF INKEY$ = CHR$(27) THEN EXIT SUB
i2 = 50
FOR i1 = 50 TO 260
        GET (i1, i2)-(i1 + 12, i2 + 48), pixelpark
        IF i3 > 6 THEN
            PUT (i1, i2 + 1), pixelpark, PSET
            i3 = i3 + 1
            IF i3 = 13 THEN i3 = 0
        ELSE
            PUT (i1, i2 - 1), pixelpark, PSET
            i3 = i3 + 1
        END IF
        FOR p = 0 TO pganz * 100: NEXT p
        IF INKEY$ = CHR$(27) THEN EXIT SUB
NEXT i1
i1 = 40
FOR i2 = 60 TO 110
        GET (i1, i2)-(i1 + 220, i2 + 12), pixelpark
        IF i3 > 6 THEN
            PUT (i1 + 1, i2), pixelpark, PSET
            i3 = i3 + 1
            IF i3 = 13 THEN i3 = 0
        ELSE
            PUT (i1 - 1, i2), pixelpark, PSET
            i3 = i3 + 1
        END IF
        FOR p = 0 TO pganz * 100: NEXT p
        IF INKEY$ = CHR$(27) THEN EXIT SUB
NEXT i2

i3 = 0
FOR i1 = 1 TO 3
    FOR i2 = 40 TO 250
        i3 = i3 + 1
        IF i3 = 3 THEN i3 = 1
        PUT (i2, i1 * 8 + 60), pacman(0, i3), PSET
        FOR p = 0 TO pganz * 200: NEXT p
        PUT (i2, i1 * 8 + 60), pacman(0, i3)
        IF INKEY$ = CHR$(27) THEN EXIT SUB
    NEXT i2
NEXT i1

END SUB

SUB Logo2
CLS

VIEW (60, 50)-(260, 150), , 3
y = 46
FOR i1 = 1 TO 15
    PUT (i1 * 8 + 36, y), letter(0, i1)
NEXT i1

COLOR 10
LOCATE 21, 16: PRINT "March 2001"
LOCATE 22, 17: PRINT "Ver. 1.21"
COLOR 11
LOCATE 23, 15: PRINT "Press (Enter)"
SLEEP
COLOR 11
LOCATE 23, 10: PRINT "Press (Esc) to continue"

posx(1) = 44: posy(1) = 46
posx(2) = 52: posy(2) = 46
posx(3) = 60: posy(3) = 46
posx(4) = 68: posy(4) = 46
posx(5) = 76: posy(5) = 46
posx(7) = 92: posy(7) = 46
posx(8) = 100: posy(8) = 46
posx(9) = 108: posy(9) = 46
posx(11) = 124: posy(11) = 46
posx(12) = 132: posy(12) = 46
posx(13) = 140: posy(13) = 46
posx(14) = 148: posy(14) = 46
posx(15) = 156: posy(15) = 46

RANDOMIZE TIMER
DO
FOR i1 = 1 TO 20
    IF i1 = 1 THEN
        FOR i3 = 1 TO 15
            posd(i3) = INT(RND * 8) + 1
        NEXT i3
    END IF
FOR i2 = 1 TO 15
    IF i2 = 6 OR i2 = 10 THEN i2 = i2 + 1
    LINE (posx(i2), posy(i2))-(posx(i2) + 8, posy(i2) + 8), 0, BF
    SELECT CASE posd(i2)
        CASE IS = 1
            IF posy(i2) - 1 > 0 THEN
                posy(i2) = posy(i2) - 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 2
            IF posy(i2) - 1 > 0 AND posx(i2) + 1 < 193 THEN
                posy(i2) = posy(i2) - 1
                posx(i2) = posx(i2) + 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 3
            IF posx(i2) + 1 < 193 THEN
                posx(i2) = posx(i2) + 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 4
            IF posy(i2) + 1 < 93 AND posx(i2) + 1 < 193 THEN
                posy(i2) = posy(i2) + 1
                posx(i2) = posx(i2) + 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 5
            IF posy(i2) + 1 < 93 THEN
                posy(i2) = posy(i2) + 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 6
            IF posy(i2) + 1 < 93 AND posx(i2) - 1 > 0 THEN
                posy(i2) = posy(i2) + 1
                posx(i2) = posx(i2) - 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 7
            IF posx(i2) - 1 > 0 THEN
                posx(i2) = posx(i2) - 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
        CASE IS = 8
            IF posy(i2) - 1 > 0 AND posx(i2) - 1 > 0 THEN
                posy(i2) = posy(i2) - 1
                posx(i2) = posx(i2) - 1
            ELSE
                posd(i2) = INT(RND * 8) + 1
            END IF
    END SELECT
    PUT (posx(i2), posy(i2)), letter(0, i2), PSET
NEXT i2
ptime! = TIMER: WHILE ptime! = TIMER: WEND
NEXT i1
LOOP UNTIL INKEY$ = CHR$(27)

VIEW

END SUB

SUB Messen

zz1 = INT(TIMER)
IF zz1 <> zz2 THEN
    zz2 = zz1
    Zeit = Zeit + 1
END IF

END SUB

SUB Optio
optiostart:
CLS
COLOR 4

LOCATE 1, 1: PRINT "Welcome!"
LOCATE 3, 1: PRINT "Do you want to..."
'LOCATE 8, 5: PRINT "(1)    play?"
COLOR 14
LOCATE 9, 5: PRINT "(2)    look at the highscore?"
COLOR 11
LOCATE 11, 5: PRINT "(3)    leave the game?"
COLOR 4
LOCATE 20, 3: PRINT "Let me know YOUR opinion:"
LOCATE 21, 3: PRINT "webmaster@dregenrocks.de"
DO
eing$ = INKEY$
SELECT CASE eing$
    CASE IS = "1"
        Prefer
        EXIT SUB
    CASE IS = "2"
        High
        GOTO optiostart
    CASE IS = "3"
        OPEN "highsc0.dat" FOR OUTPUT AS #1
        OPEN "highsc1.dat" FOR OUTPUT AS #2
        OPEN "highsc2.dat" FOR OUTPUT AS #3
        OPEN "highsc3.dat" FOR OUTPUT AS #4
        OPEN "highsc4.dat" FOR OUTPUT AS #5
        OPEN "highsc5.dat" FOR OUTPUT AS #6
        OPEN "highsc6.dat" FOR OUTPUT AS #7
        OPEN "highsc7.dat" FOR OUTPUT AS #8
        OPEN "highsc8.dat" FOR OUTPUT AS #9
        OPEN "highsc9.dat" FOR OUTPUT AS #10
        OPEN "highsc10.dat" FOR OUTPUT AS #11
        FOR d = 1 TO 11
            FOR i = 1 TO 10
                WRITE #d, Heintrag(i, d - 1).callsign
            NEXT i
            FOR i = 1 TO 10
                WRITE #d, Heintrag(i, d - 1).bestzeit
            NEXT i
        CLOSE d
        NEXT d
        END
END SELECT
f = INT(RND * 200) + 1
COLOR f
LOCATE 8, 5: PRINT "(1)    play?"
LOOP
END SUB

SUB Player

eing$ = INKEY$
SELECT CASE eing$
    CASE IS = CHR$(0) + CHR$(80)
        IF sy(0) + 1 < 18 AND box(sx(0), sy(0) + 1).bvorhanden <> 1 THEN
            LINE (sx(0) * 11 + 2, sy(0) * 11 + 2)-(sx(0) * 11 + 10, sy(0) * 11 + 10), 0, BF
            box(sx(0), sy(0)).xvorhanden = 0
            sy(0) = sy(0) + 1 'runter
            box(sx(0), sy(0)).xvorhanden = 1
        END IF
    CASE IS = CHR$(0) + CHR$(77)
        IF sx(0) + 1 < 29 AND box(sx(0) + 1, sy(0)).bvorhanden <> 1 THEN
            LINE (sx(0) * 11 + 2, sy(0) * 11 + 2)-(sx(0) * 11 + 10, sy(0) * 11 + 10), 0, BF
            box(sx(0), sy(0)).xvorhanden = 0
            sx(0) = sx(0) + 1 'rechts
            box(sx(0), sy(0)).xvorhanden = 1
        END IF
    CASE IS = CHR$(0) + CHR$(72)
        IF sy(0) - 1 >= 0 AND box(sx(0), sy(0) - 1).bvorhanden <> 1 THEN
            LINE (sx(0) * 11 + 2, sy(0) * 11 + 2)-(sx(0) * 11 + 10, sy(0) * 11 + 10), 0, BF
            box(sx(0), sy(0)).xvorhanden = 0
            sy(0) = sy(0) - 1 'hoch
            box(sx(0), sy(0)).xvorhanden = 1
        END IF
    CASE IS = CHR$(0) + CHR$(75)
        IF sx(0) - 1 >= 0 AND box(sx(0) - 1, sy(0)).bvorhanden <> 1 THEN
            LINE (sx(0) * 11 + 2, sy(0) * 11 + 2)-(sx(0) * 11 + 10, sy(0) * 11 + 10), 0, BF
            box(sx(0), sy(0)).xvorhanden = 0
            sx(0) = sx(0) - 1 'links
            box(sx(0), sy(0)).xvorhanden = 1
        END IF
END SELECT


END SUB

SUB Prefer
CLS
COLOR 1
bfaktor = -1
DO
LOCATE 3, 3: PRINT "higher = easier"
LOCATE 4, 3: INPUT "Level of slowlyness (0-20): ", bfaktor
LOOP WHILE bfaktor < 0 AND bfaktor > 20
feld = -1
COLOR 2
DO
COLOR 10
LOCATE 20, 3: PRINT "Field No.0 is an empty test field"
COLOR 4
LOCATE 11, 3: PRINT "Field No. 4 is dedicated to"
LOCATE 12, 3: PRINT "http://www.krude-online.de"
COLOR 13
LOCATE 14, 3: PRINT "Field No. 5 is designed by Krude"
COLOR 12
LOCATE 16, 3: PRINT "Field No. 10 is dedicated to"
LOCATE 17, 3: PRINT "The Spam Club at"
LOCATE 18, 3: PRINT "http://www.gooddays.org"
COLOR 15
LOCATE 6, 3: PRINT "What Field No. ?"
LOCATE 7, 3: INPUT "0-10: ", feld
LOOP WHILE feld < 0 AND feld > 10
END SUB

SUB Winwin
CLS

'DO
FOR c = 32 TO 40
    LOCATE 1, 1
    COLOR c
    PRINT "You have won !!!"
    FOR p = 1 TO 20000
    NEXT p
NEXT c
PRINT "In "; Zeit; " seconds!"
'LOOP UNTIL INKEY$ = CHR$(27)

FOR i = 1 TO 10
    IF Zeit < Heintrag(i, feld).bestzeit OR Heintrag(i, feld).bestzeit = 0 THEN
        IF i = 1 THEN
            LOCATE 5, 5
            COLOR 15: PRINT "Congratulations!!!"
            LOCATE 6, 5: PRINT "You have got the best time!!!"
            FOR z = 1 TO 5
                'PLAY "L8 eeecgggeg eeecgggeg l8 d l16 fa l8 c l16 eg"
            NEXT z
        ELSE
            LOCATE 5, 1
            COLOR 15: PRINT "Congratulations!!!"
            LOCATE 6, 1: PRINT "You have got one of the best results!!!"
            'PLAY "L8 dcacec<dcacec>>dcacec"
        END IF
        FOR j = 10 TO i STEP -1
            Heintrag(j, feld).callsign = Heintrag(j - 1, feld).callsign
            Heintrag(j, feld).bestzeit = Heintrag(j - 1, feld).bestzeit
        NEXT j
        DO
        LOCATE 8, 1
        COLOR 10
        INPUT "Your Name (max.10 symbols): ", eing$
        LOOP UNTIL LEN(eing$) < 11 AND LEN(eing$) > 0
        Heintrag(i, feld).callsign = eing$
        Heintrag(i, feld).bestzeit = Zeit
        EXIT FOR
    END IF
NEXT i
END SUB

FUNCTION Zufall (tief, hoch)
Zufall = INT((hoch - tief + 1) * RND + tief)
END FUNCTION

