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

DECLARE SUB ginit ()                        'Diverse Werte einlesen
DECLARE SUB logo ()                         'Erstes Intro
DECLARE SUB logo2 ()                        'Zweites Intro
DECLARE SUB optio ()                        'Optionsmen
DECLARE SUB prefer ()                       'Prferenzen vor einem Spiel
DECLARE SUB arena ()                        'Spielfeld zeichnen
DECLARE SUB prefight ()                     'Ankndigung
DECLARE SUB player ()                       'Die Spielersteuerung
DECLARE SUB ki ()                           'Anders: Die A.I.
DECLARE SUB kimalen ()                      'Das O wird gemalt
DECLARE SUB messen ()                       'Zeitmesser
DECLARE SUB winwin ()                       'Was passiert bei Gewinn?
DECLARE SUB high ()                         'Highscore-Anzeige
DECLARE SUB highkey (s!)                    'Highscore-Verschlsselung
DECLARE FUNCTION Zufall! (tief!, hoch!)     'Generierung einer Zufi-Zahl
DECLARE FUNCTION blocked! (i1!, i2!)        'Ist ein Feld blockiert?

'Die KI-Umgebung
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

'Pausenwerte
DIM SHARED pganz, p AS LONG

'Die Positionen der Protagonisten
DIM SHARED sx(0 TO 1) AS SINGLE
DIM SHARED sy(0 TO 1) AS SINGLE

'Das Spielfeld definieren
TYPE Spielfeld
    xda AS SINGLE                            'Ist das X vorhanden?
    oda AS SINGLE                            'Ist das O vorhanden?
    bda AS SINGLE                            'Ist eine Barriere da?
    tda AS SINGLE                            'Teleporter vorhanden?
    fda AS SINGLE                            'Falle vorhanden?
    zda AS SINGLE                            'Zwinkerblock da?
END TYPE

'Teleporter definieren
TYPE teleporter
    x AS SINGLE
    y AS SINGLE
END TYPE
DIM SHARED tp(0 TO 100) AS teleporter
DIM SHARED tanzahl AS SINGLE
DIM SHARED tbremse AS SINGLE

'Jedes einzelne Feld
DIM SHARED box(-1 TO 29, -1 TO 19) AS Spielfeld
DIM SHARED title$, creator$, cfarbe%, dedicated$, dedicated2$

'Grafikspeicher fr die Symbole
DIM SHARED symbol(0 TO 100, 0 TO 1) AS INTEGER
DIM SHARED tpgraf(0 TO 100, 0 TO 1) AS INTEGER
DIM SHARED ttgraf(0 TO 100, 0 TO 1) AS INTEGER

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

'Fr das Logo2
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)
                                
'Damit das Programm auch immer wei, wo das Spiel spielt
DIM SHARED feld AS SINGLE
DIM SHARED afeld AS SINGLE
LET afeld = 13                              'WICHTIG!!!

'Zur Zeitberechnung
DIM SHARED Zeit, zz1, zz2 AS LONG

'Bremsfaktor
DIM SHARED bfaktor AS SINGLE

'Highscore definieren
TYPE Eintrag
    callsign AS STRING * 10                         'Name
    bestzeit AS INTEGER                             'Zeit
END TYPE

'Highscores
DIM SHARED heintrag(0 TO 10, 0 TO afeld) AS Eintrag
DIM SHARED bfalle AS INTEGER                        'Wie oft in eine Falle
DIM SHARED score

'Fr das Coding der Highscore
*censored*

DIM SHARED eing$
DIM SHARED xmove

'Startup
ginit
logo
logo2


Game:

optio

'Spiel initialisieren
arena

Zeit = 0
bremse = 0
treffer = 0
bfalle = 0
box(0, 0).xda = 1
box(28, 17).oda = 1
sx(0) = 0
sy(0) = 0
sx(1) = 28
sy(1) = 17
tti = 1
tpi = 1
tbremse = 1         'Teleporterbremse


'Hauptschleife
DO

    eing$ = INKEY$
    'Die Protagonisten
    player
    IF bremse = bfaktor THEN
        ki
        kimalen
        bremse = 0
    END IF

    'Status
    messen

    'malen
    FOR x = 0 TO 28
        FOR y = 0 TO 17
            IF box(x, y).tda = 1 THEN
                IF tpi = 1 THEN
                    PUT (x * 11 + 2, y * 11 + 2), tpgraf(0, 1), PSET
                ELSE
                    PUT (x * 11 + 2, y * 11 + 2), tpgraf(0, 0), PSET
                END IF
            END IF
            IF box(x, y).fda = 1 THEN
                IF tti = 1 THEN
                    PUT (x * 11 + 1, y * 11 + 1), ttgraf(0, 1), PSET
                ELSE
                    PUT (x * 11 + 1, y * 11 + 1), ttgraf(0, 0), PSET
                END IF
            END IF
            IF box(x, y).xda = 1 THEN
                PUT (x * 11 + 2, y * 11 + 2), symbol(0, 0), PSET
            END IF
            IF box(x, y).tda = 1 AND box(x, y).oda = 1 THEN
                FOR s = 1 TO tanzahl
                    IF x = tp(s).x AND y = tp(s).y THEN EXIT FOR
                NEXT s
                d = s + 1
                IF d > tanzahl THEN d = 1
                box(x, y).oda = 0: box(tp(d).x, tp(d).y).oda = 1
                sx(1) = tp(d).x: sy(1) = tp(d).y
            END IF
            IF xmove = 1 THEN
                IF box(x, y).tda = 1 AND box(x, y).xda = 1 THEN
                    FOR s = 1 TO tanzahl
                        IF x = tp(s).x AND y = tp(s).y THEN EXIT FOR
                    NEXT s
                    d = s + 1
                    IF d > tanzahl THEN d = 1
                    box(x, y).xda = 0: box(tp(d).x, tp(d).y).xda = 1
                    sx(0) = tp(d).x: sy(0) = tp(d).y
                END IF
            END IF
            IF box(x, y).oda = 1 THEN
                PUT (x * 11 + 2, y * 11 + 2), symbol(0, 1), PSET
            END IF
            IF box(x, y).xda = 1 AND box(x, y).oda = 1 THEN
                treffer = 1
                box(x, y).xda = 0
                box(x, y).oda = 0
            END IF
            IF box(x, y).xda = 1 AND box(x, y).fda = 1 THEN
                IF xmove = 1 THEN bfalle = bfalle + 1
            END IF
        NEXT y
    NEXT x
   
    IF eing$ = CHR$(27) THEN optio
   
    bremse = bremse + 1
  
IF tti = 1 THEN tti = 0 ELSE tti = 1
IF tpi = 1 THEN tpi = 0 ELSE tpi = 1
IF xmove = 1 THEN xmove = 0

LOOP UNTIL treffer = 1

winwin

GOTO Game

symbol:
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

teleporter1:
DATA 1,1,1,1,1,1,1,1
DATA 1,9,9,9,9,9,9,1
DATA 1,9,1,1,1,1,9,1
DATA 1,9,1,9,9,1,9,1
DATA 1,9,1,9,9,1,9,1
DATA 1,9,1,1,1,1,9,1
DATA 1,9,9,9,9,9,9,1
DATA 1,1,1,1,1,1,1,1

teleporter2:
DATA 9,9,9,9,9,9,9,9
DATA 9,1,1,1,1,1,1,9
DATA 9,1,9,9,9,9,1,9
DATA 9,1,9,1,1,9,1,9
DATA 9,1,9,1,1,9,1,9
DATA 9,1,9,9,9,9,1,9
DATA 9,1,1,1,1,1,1,9
DATA 9,9,9,9,9,9,9,9

falle1:
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15

falle2:
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12
DATA 15,15,15,15,15,15,15,15,15,15
DATA 12,12,12,12,12,12,12,12,12,12

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

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

d1:
DATA 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,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

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

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

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

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,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,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,0,0,1,0
DATA 0,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,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,0,0,0,0,0,0,0,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,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,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,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,0,0,0,1,0,0,1,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,1,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,1,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,1,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,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,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,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,1,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,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

d11:
DATA 0,0,0,0,3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,3,1,1,1,1
DATA 0,1,1,0,3,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,3,1,1,1,1
DATA 0,1,2,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,2,1,1
DATA 0,1,1,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,0,1,1
DATA 0,0,0,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,0,0,1
DATA 0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0
DATA 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,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,0,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,0,1,1,1,1,1,1,1,1,1,0
DATA 0,1,1,1,1,1,1,1,1,1,0,0,0,0,2,0,0,0,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,1,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,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0
DATA 1,0,0,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,0,0,0
DATA 1,1,0,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,1,1,0
DATA 1,1,2,0,3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,3,0,2,1,0
DATA 1,1,1,1,3,0,0,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,0,0,3,0,1,1,0
DATA 1,1,1,1,3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,3,0,0,0,0

d12:
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,1,1,1,1,1,3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
DATA 0,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,1,3,0,3,0,3,0,3,0,3,0,3
DATA 0,1,0,1,1,1,1,1,3,0,0,0,0,0,0,0,0,1,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,1,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,1,1,1,1,1,1,1,1,1,1,1,0
DATA 0,1,0,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,0,0,0,0
DATA 0,1,0,0,0,0,2,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0
DATA 0,1,1,1,1,1,1,1,3,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,2,1,2,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,0,2,1,0,3,3,0,0,0,0,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0
DATA 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,1,2
DATA 0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,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

d13:
DATA 0,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,0
DATA 1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0
DATA 0,0,0,0,0,0,0,0,1,0,2,1,0,1,2,1,0,1,0,1,2,1,0,1,0,0,2,1,0
DATA 0,1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,0
DATA 0,0,0,0,0,2,1,0,1,0,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,1,0
DATA 0,1,1,1,1,1,1,0,1,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
DATA 0,1,2,0,0,0,0,0,1,0,2,1,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
DATA 0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0
DATA 0,1,0,0,0,0,0,0,0,0,1,2,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0,1,3,0,3,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,1,0
DATA 0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0
DATA 0,1,2,0,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0
DATA 0,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,2,1,2,1,0
DATA 0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,1,1,1,2,3,2,1,0,1,1,1,1,1,0
DATA 1,1,1,1,1,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,0,0,0,0,2,1,0
DATA 1,2,1,2,1,0,0,0,0,0,2,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0
DATA 1,0,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

SUB arena
SELECT CASE feld
    CASE IS = 0
        RESTORE d0
        title$ = "Test Field"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 1
        RESTORE d1
        title$ = "First Tries"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 2
        RESTORE d2
        title$ = "The Boss"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 3
        RESTORE d3
        title$ = "Next tries"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 4
        RESTORE d4
        title$ = "Der Krude"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = "http://krude-online.de"
        dedicated2$ = ""
    CASE IS = 5
        RESTORE d5
        title$ = "Episode 666"
        creator$ = "Der Krude"
        cfarbe% = 14
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 6
        RESTORE d6
        title$ = "Simple Maze"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 7
        RESTORE d7
        title$ = "Whew, this one rocks!"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 8
        RESTORE d8
        title$ = "Where's the hole?"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 9
        RESTORE d9
        title$ = "Out of ideas..."
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = "my lazyness"
        dedicated2$ = ""
    CASE IS = 10
        RESTORE d10
        title$ = "Home of the Spam"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = "The Spam Club"
        dedicated2$ = "at http://www.gooddays.org"
    CASE IS = 11
        RESTORE d11
        title$ = "The new Generation"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = "to my greatfullness"
        dedicated2$ = ""
    CASE IS = 12
        RESTORE d12
        title$ = "Weird"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
    CASE IS = 13
        RESTORE d13
        title$ = "Lab Part I"
        creator$ = "Dregen Rocks"
        cfarbe% = 4
        dedicated$ = ""
        dedicated2$ = ""
END SELECT

prefight

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

tanzahl = 0

FOR y = 0 TO 17
    FOR x = 0 TO 28
        READ b
        IF b = 1 THEN
            LINE (x * 11, y * 11)-(x * 11 + 11, y * 11 + 11), 6, BF
            box(x, y).bda = 1
            box(x, y).tda = 0
            box(x, y).fda = 0
        ELSEIF b = 2 THEN
            PUT (x * 11 + 2, y * 11 + 2), tpgraf(0, 0), PSET
            box(x, y).bda = 0
            box(x, y).tda = 1
            box(x, y).fda = 0
            tanzahl = tanzahl + 1
            tp(tanzahl).x = x
            tp(tanzahl).y = y
        ELSEIF b = 3 THEN
            PUT (x * 11 + 1, y * 11 + 1), ttgraf(0, 0), PSET
            box(x, y).bda = 0
            box(x, y).tda = 0
            box(x, y).fda = 1
        ELSE
            box(x, y).bda = 0
            box(x, y).tda = 0
            box(x, y).fda = 0
        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).bda = 1 THEN
    blocked = 1
    EXIT FUNCTION
ELSEIF box(x, y).xda = 1 THEN
    blocked = 1
    EXIT FUNCTION
ELSE
    blocked = 0
END IF

END FUNCTION

SUB ginit
CLS
SCREEN 13

'Zusatzfarben
f16 = 668220
PALETTE 16, f16

'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
RESTORE symbol
FOR i% = 0 TO 1
    FOR y = 0 TO 7
        FOR x = 0 TO 7
            READ bit
            PSET (x, y), bit
        NEXT x
    NEXT y
    GET (0, 0)-(7, 7), symbol(0, i%)
NEXT i%

RESTORE teleporter1
FOR i% = 0 TO 1
    FOR y = 0 TO 7
        FOR x = 0 TO 7
            READ bit
            PSET (x, y), bit
        NEXT x
    NEXT y
    GET (0, 0)-(7, 7), tpgraf(0, i%)
NEXT i%

RESTORE falle1
FOR i% = 0 TO 1
    FOR y = 0 TO 9
        FOR x = 0 TO 9
            READ bit
            PSET (x, y), bit
        NEXT x
    NEXT y
    GET (0, 0)-(9, 9), ttgraf(0, i%)
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

'Highscore einlesen und decodieren
OPEN "highsc.dat" FOR INPUT AS #1

FOR f = 0 TO afeld
    FOR e = 1 TO 10
        FOR b = 1 TO 10
            IF EOF(1) = -1 THEN EXIT FOR
            INPUT #1, cs(b, e, f)
        NEXT b
        IF EOF(1) = -1 THEN EXIT FOR
        INPUT #1, bz(e, f)
    NEXT e
NEXT f
CLOSE #1
highkey (0)

END SUB

SUB high
DO
    COLOR 15
    LOCATE 15, 1
    INPUT "What Field No. (0-13): ", eing$
LOOP UNTIL VAL(eing$) > -1 AND VAL(eing$) < afeld + 1
feld = VAL(eing$)
CLS
LOCATE 1, 13: COLOR 3: PRINT "Field No. "; feld
COLOR 15
LOCATE 5, 12: PRINT "|     Name      |": LOCATE 5, 27: PRINT "| Score"
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, 12: PRINT "(Press any Key)"
DO: LOOP WHILE INKEY$ = ""

END SUB

*censored*

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)).oda = 0
        sy(1) = sy(1) - 1 'hoch
        box(sx(1), sy(1)).oda = 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)).oda = 0
        sx(1) = sx(1) - 1 'links
        box(sx(1), sy(1)).oda = 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)).oda = 0
        sy(1) = sy(1) + 1 'unten
        box(sx(1), sy(1)).oda = 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)).oda = 0
        sx(1) = sx(1) + 1 'rechts
        box(sx(1), sy(1)).oda = 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 * 200: 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.4"
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 "highsc.dat" FOR OUTPUT AS #1
        highkey (1)
        FOR f = 0 TO afeld
            FOR e = 1 TO 10
                FOR b = 1 TO 10
                    WRITE #1, cs(b, e, f)
                NEXT b
                WRITE #1, bz(e, f)
            NEXT e
        NEXT f
        CLOSE #1
        END
END SELECT
f = INT(RND * 200) + 1
COLOR f
LOCATE 8, 5: PRINT "(1)    play?"
LOOP
END SUB

SUB player

SELECT CASE eing$
    CASE IS = CHR$(0) + CHR$(80)
        IF sy(0) + 1 < 18 AND box(sx(0), sy(0) + 1).bda <> 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)).xda = 0
            sy(0) = sy(0) + 1 'runter
            box(sx(0), sy(0)).xda = 1
            xmove = 1
        END IF
    CASE IS = CHR$(0) + CHR$(77)
        IF sx(0) + 1 < 29 AND box(sx(0) + 1, sy(0)).bda <> 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)).xda = 0
            sx(0) = sx(0) + 1 'rechts
            box(sx(0), sy(0)).xda = 1
            xmove = 1
        END IF
    CASE IS = CHR$(0) + CHR$(72)
        IF sy(0) - 1 >= 0 AND box(sx(0), sy(0) - 1).bda <> 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)).xda = 0
            sy(0) = sy(0) - 1 'hoch
            box(sx(0), sy(0)).xda = 1
            xmove = 1
        END IF
    CASE IS = CHR$(0) + CHR$(75)
        IF sx(0) - 1 >= 0 AND box(sx(0) - 1, sy(0)).bda <> 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)).xda = 0
            sx(0) = sx(0) - 1 'links
            box(sx(0), sy(0)).xda = 1
            xmove = 1
        END IF
END SELECT


END SUB

SUB prefer
CLS
COLOR 9
bfaktor = -1
DO
LOCATE 3, 3: PRINT "higher = easier"
LOCATE 4, 3: INPUT "Level of slowlyness (1-10): ", bfaktor
LOOP WHILE bfaktor < 1 AND bfaktor > 10
feld = -1
COLOR 2
DO
COLOR 10
LOCATE 11, 3: PRINT "Field No.0 is an empty test field"
COLOR 2
LOCATE 12, 3: PRINT "No.1 to No.10 : For the beginners"
COLOR 14
LOCATE 13, 3: PRINT "No.11 to No.13: For the advanced ones"
COLOR 12
'LOCATE 14, 3: PRINT "No.21 to No.30: For the real good ones"
COLOR 4
'LOCATE 15, 3: PRINT "No.31 to No.40: For the experts"
COLOR 16
'LOCATE 16, 3: PRINT "From No.41    : Send by fans, THANKS!"
COLOR 15
LOCATE 6, 3: PRINT "What Field No. ?"
LOCATE 7, 3: PRINT "0 -"; afeld; ": "
LOCATE 8, 3: PRINT "                               "
LOCATE 8, 3: INPUT "", feld
LOOP UNTIL feld >= 0 AND feld <= afeld
END SUB

SUB prefight
CLS
COLOR 15: LOCATE 2, 11: PRINT "NAME OF THE FIELD:"
z = 20 - (LEN(title$) / 2)
COLOR 10: LOCATE 4, z: PRINT title$
COLOR 15: LOCATE 8, 17: PRINT "AUTHOR:"
z = 20 - (LEN(creator$) / 2)
COLOR cfarbe%: LOCATE 10, z: PRINT creator$
IF dedicated$ = "" THEN GOTO enddedict
COLOR 15: LOCATE 14, 14: PRINT "DEDICATED TO"
z = 20 - (LEN(dedicated$) / 2)
COLOR 9: LOCATE 16, z: PRINT dedicated$
IF dedicated2$ = "" THEN GOTO enddedict
z = 20 - (LEN(dedicated2$) / 2)
COLOR 9: LOCATE 17, z: PRINT dedicated2$
enddedict:
COLOR 15: LOCATE 22, 9: PRINT "Press any Key to Start"
DO: LOOP WHILE INKEY$ = ""
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)
COLOR 15: LOCATE 12, 1: PRINT "SCORE:"
score = (Zeit + (bfalle * 5)) * bfaktor
LOCATE 14, 1: PRINT Zeit; " seconds"
LOCATE 15, 1: PRINT "+ "; bfalle; " trap hits * 5"
LOCATE 16, 1: PRINT "* "; bfaktor; " slowlyness level"
LOCATE 19, 1: PRINT "SCORE:"
LOCATE 20, 1: PRINT score
FOR i = 1 TO 10
    IF score < 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!!!"
        ELSE
            LOCATE 5, 1
            COLOR 15: PRINT "Congratulations!!!"
            LOCATE 6, 1: PRINT "You have got one of the best results!!!"
        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 = score
        EXIT FOR
    END IF
NEXT i
END SUB

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

