Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

STOP

Uploader:MitgliedALWIM
Datum/Zeit:26.08.2016 19:46:00

#INCLUDE ONCE "file.bi"
#INCLUDE ONCE "Windows.bi"
#INCLUDE ONCE "win\COMMDLG.BI"

DECLARE SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER)
DECLARE SUB FONT (WORT AS STRING, HOEHE AS INTEGER, BREITE AS INTEGER, FARBE1 AS INTEGER, FARBE2 AS INTEGER, FARBE3 AS INTEGER, ATTRIBUT AS INTEGER, STELLE AS INTEGER)
DECLARE SUB INGET (ANZAHLE AS INTEGER, STELLEN AS INTEGER, ZEILEN AS INTEGER, N AS STRING)
DECLARE SUB BUTTON (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER)
DECLARE SUB ANZEIGE (i AS INTEGER)
DECLARE SUB MENU
DECLARE SUB LADEN
DECLARE SUB ANLEGEN
DECLARE SUB SPEICHERN
DECLARE SUB LOESCHEN
DECLARE SUB SORTIEREN
DECLARE SUB AUSLOSUNG
DECLARE SUB ERGEBNISANZEIGE
DECLARE SUB PUNKTEANZEIGE

DECLARE SUB TABELLE

DECLARE FUNCTION LOADSAVEDIALOG (_
savedlog AS INTEGER = 0,_
filter AS STRING = "",_
fltrindex AS INTEGER = 1,_
initdir AS STRING = "",_
strDefExt AS STRING = "stop") AS STRING

'Voreinstellungen:
'savedlog = 0 "Datei Öffnen", 1(<>0) "Datei Speichern"
'filter = "" "Alle Dateien", sonst siehe fil
'fltrindex = 1,  sonst welcher Eintrag, der bei filter angegebenen Auswahl, aktiv ist
'initdir = "" = "." aktueller Pfad, sonst angegebener Pfad
'strDefExt = "" keine Vorgabe, sonst z.B. "bak" als Vorgabe der Endung zum Speichern

DIM SHARED AS STRING DateiName, IconDatei, fil

REDIM SHARED AS INTEGER paarungen(1 TO 1, 1 TO 2, 1 TO 1)

DIM SHARED AS INTEGER i = 3000        ' als Laufvariable
DIM SHARED AS INTEGER j = 3000        ' als Laufvariable
DIM SHARED BV AS INTEGER                  ' Variable für Statusrückgabe erstellen

DIM SHARED AS INTEGER ELO(j), DWZ(j)
DIM SHARED AS INTEGER BB, E, K, L, T, XXX, Seite, Runde, Brett
DIM SHARED AS INTEGER Tastensperre(16), TAZ, vorhandeneEintraege, laufvariable
DIM SHARED AS INTEGER Eintrag(i), Sonderzeichen, Attribut, STELLE, MaxAnzahl
DIM SHARED AS INTEGER startwert, Paarungssystem, sx, r, RAZ, rotation, ppr, kampflose(i, j)
DIM SHARED AS DOUBLE Punkte(i, j), Gesamtpunkte(i), Platz

DIM SHARED AS INTEGER mausx, mausy, mausk

DIM SHARED AS STRING AA, Eingabe(i), Spieler(i), taste, Titel(i), Verein(i), Temp(i, j), N

DIM f AS INTEGER = FREEFILE


SCREENRES 1024, 420, 32

' ******************** Variablen definieren ***************************
Tastensperre(1) = TRUE
Tastensperre(2) = FALSE
Tastensperre(3) = FALSE
Tastensperre(4) = FALSE
Tastensperre(5) = FALSE
Tastensperre(6) = FALSE
Tastensperre(7) = FALSE
Tastensperre(8) = FALSE
Tastensperre(9) = FALSE
Tastensperre(10) = FALSE
Tastensperre(11) = FALSE
Tastensperre(12) = FALSE

i = 1
TAZ = 0
Seite = 1 ' Aktuelle aufgerufene Seite
Runde = 1 ' Aktuelle Runde
Brett = 1 ' aufgerufenes Brett
Platz = 1 ' aufgerufener Platz
MaxAnzahl = 2002 ' maximale Anzahl der Teilnehmer
Paarungssystem = 1 ' Rundensystem aktiv

' Punkte initialisieren - auf -0 setzen
FOR j = 1 TO MaxAnzahl
    FOR laufvariable = 1 TO MaxAnzahl
        Punkte(laufvariable, j) = 2000
        ' kampflose(laufvariable, j) = 0 ' 0 = keine Kampflose Ergebnisse - 1 = kampflose Ergebnisse
    NEXT
NEXT
'/

' alle Einträge sind freigegeben
FOR laufvariable = 1 TO MaxAnzahl
    Eintrag(laufvariable) = 0
NEXT

MENU ' Menu laden

DO
    taste = INKEY
    GETMOUSE mausx, mausy,, mausk

    ' LOCATE 5,5: PRINT "mausx: "; mausx; " mausy: "; mausy; "   "

    COLOR &hFFFFFF
    SELECT CASE mausk
        CASE 1

            ' Schaltfläche - Teilnehmer
            SELECT CASE mausx
                CASE 2 TO 93
                    SELECT CASE mausy
                        CASE 2 TO 28
                            IF Seite <> 1 THEN
                                SCREENRES 1024, 420, 32
                                Seite = 1
                                MENU
                                ANZEIGE(i)
                            END IF
                    END SELECT
            END SELECT

            ' Schaltfläche - Paarungen
            SELECT CASE mausx
                CASE 97 TO 182
                    SELECT CASE mausy
                        CASE 2 TO 28
                            IF Seite <> 2 THEN
                                SCREENRES 1024, 620, 32
                                Seite = 2
                                MENU
                            END IF
                    END SELECT
            END SELECT

            ' Schaltfläche - Tabelle
            SELECT CASE mausx
                CASE 186 TO 268
                    SELECT CASE mausy
                        CASE 2 TO 28
                            IF Seite <> 3 THEN
                                SCREENRES 1024, 640, 32
                                Seite = 3
                                MENU
                                PUNKTEANZEIGE
                            END IF
                    END SELECT
            END SELECT

            IF Seite < 2 THEN
                ' Eingabe - Verein
                SELECT CASE mausx
                    CASE 770 TO 1020
                        SELECT CASE mausy
                            CASE 57 TO 77
                                INGET 20, 9, 106, Eingabe(5)
                                Verein(i) = Eingabe(5)
                                ANZEIGE(i)
                        END SELECT
                END SELECT

                ' Eingabe - Spielername
                SELECT CASE mausx
                    CASE 48 TO 470
                        SELECT CASE mausy
                            CASE 57 TO 77
                                INGET 35, 9, 23, Eingabe(1)
                                Spieler(i) = Eingabe(1)
                                k = 1
                                TAZ = 0
                                DO
                                    IF Spieler(k) = "" THEN EXIT DO
                                    TAZ += 1
                                    k += 1
                                LOOP
                                ANZEIGE(i)
                        END SELECT
                END SELECT

                ' Eingabe - ELO
                SELECT CASE mausx
                    CASE 475 TO 565
                        SELECT CASE mausy
                            CASE 57 TO 77
                                INGET 4, 9, 66, Eingabe(2)
                                ELO(i) = VAL(Eingabe(2))
                                ANZEIGE(i)
                                ' Tastensperre(2) = FALSE
                                ' Tastensperre(3) = FALSE
                        END SELECT
                END SELECT

                ' Eingabe - DWZ
                SELECT CASE mausx
                    CASE 570 TO 660
                        SELECT CASE mausy
                            CASE 57 TO 77
                                INGET 4, 9, 78, Eingabe(3)
                                DWZ(i) = VAL(Eingabe(3))
                                ANZEIGE(i)
                        END SELECT
                END SELECT

                ' Eingabe - Titel
                SELECT CASE mausx
                    CASE 665 TO 765
                        SELECT CASE mausy
                            CASE 57 TO 77
                                INGET 3, 9, 92, Eingabe(4)
                                Titel(i) = Eingabe(4)
                                ANZEIGE(i)
                        END SELECT
                END SELECT

                ' Datei anlegen
                SELECT CASE mausx
                    CASE 8 TO 77
                        SELECT CASE mausy
                            CASE 386 TO 406
                                ANLEGEN
                        END SELECT
                END SELECT

                ' Datei laden
                SELECT CASE mausx
                    CASE 87 TO 142
                        SELECT CASE mausy
                            CASE 386 TO 406
                                LADEN
                        END SELECT
                END SELECT

                ' Datei speichern
                SELECT CASE mausx
                    CASE 152 TO 238
                        SELECT CASE mausy
                            CASE 386 TO 406
                                SPEICHERN
                        END SELECT
                END SELECT

                ' neue Spieler
                SELECT CASE mausx
                    CASE 248 TO 380
                        SELECT CASE mausy
                            CASE 386 TO 406
                                i = TAZ+1
                                ANZEIGE(TAZ+1)
                                INGET 35, 9, 23, Eingabe(1)
                                Spieler(i) = Eingabe(1)
                                k = 1
                                TAZ = 0
                                DO
                                    IF Spieler(k) = "" THEN EXIT DO
                                    TAZ += 1
                                    k += 1
                                LOOP
                                ANZEIGE(TAZ)
                        END SELECT
                END SELECT

                ' Spieler löschen
                SELECT CASE mausx
                    CASE 390 TO 494
                        SELECT CASE mausy
                            CASE 386 TO 406
                                LOESCHEN
                                ANZEIGE(1)
                        END SELECT
                END SELECT
            END IF

            IF Seite = 2 THEN

                ' Schaltfläche - Auslosung
                SELECT CASE mausx
                    CASE 332 TO 411
                        SELECT CASE mausy
                            CASE 563 TO 596
                                AUSLOSUNG
                        END SELECT
                END SELECT

                ' Schaltfläche - 1-0
                SELECT CASE mausx
                    CASE 6 TO 67
                        SELECT CASE mausy
                            CASE 66 TO 84

                                BUTTON 6, 66, 67, 84 ' Button Anzeigen

                                Punkte(paarungen(Brett,1,Runde),Runde) = 1
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - 1/2-1/2
                SELECT CASE mausx
                    CASE 76 TO 137
                        SELECT CASE mausy
                            CASE 66 TO 84

                                BUTTON 76, 66, 137, 84

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0.5
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0.5
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - 0-1
                SELECT CASE mausx
                    CASE 146 TO 207
                        SELECT CASE mausy
                            CASE 66 TO 84

                                BUTTON 146, 66, 207, 84

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0
                                Punkte(paarungen(Brett,2,Runde),Runde) = 1
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - 1/2-0
                SELECT CASE mausx
                    CASE 6 TO 67
                        SELECT CASE mausy
                            CASE 89 TO 109

                                BUTTON 6, 89, 67, 109

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0.5
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - 0-1/2
                SELECT CASE mausx
                    CASE 76 TO 137
                        SELECT CASE mausy
                            CASE 89 TO 109

                                BUTTON 76, 89, 137, 109

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0.5
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - 0-0
                SELECT CASE mausx
                    CASE 146 TO 207
                        SELECT CASE mausy
                            CASE 89 TO 109

                                BUTTON 146, 89, 207, 109

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0
                                kampflose(Brett, Runde) = 0
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - +--
                SELECT CASE mausx
                    CASE 6 TO 67
                        SELECT CASE mausy
                            CASE 114 TO 134

                                BUTTON 6, 114, 67, 134

                                Punkte(paarungen(Brett,1,Runde),Runde) = 1
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0
                                kampflose(Brett, Runde) = 1
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - ---
                SELECT CASE mausx
                    CASE 76 TO 137
                        SELECT CASE mausy
                            CASE 114 TO 134

                                BUTTON 76, 114, 137, 134

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0
                                Punkte(paarungen(Brett,2,Runde),Runde) = 0
                                kampflose(Brett, Runde) = 1
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT

                ' Schaltfläche - --+
                SELECT CASE mausx
                    CASE 146 TO 207
                        SELECT CASE mausy
                            CASE 114 TO 134

                                BUTTON 146, 114, 207, 134

                                Punkte(paarungen(Brett,1,Runde),Runde) = 0
                                Punkte(paarungen(Brett,2,Runde),Runde) = 1
                                kampflose(Brett, Runde) = 1
                                ERGEBNISANZEIGE
                                IF brett < ppr THEN
                                    ' Brett +=1
                                    AUSLOSUNG
                                    ERGEBNISANZEIGE
                                END IF
                        END SELECT
                END SELECT
            END IF
    END SELECT

    IF Seite = 1 THEN
        ' sortieren - Taste F7
        IF MULTIKEY(&h41) THEN
            SORTIEREN
            ANZEIGE(1)
            MessageBox(0, "Spieler sortiert!", "Schachturnierorganisationsprogramm", MB_ICONINFORMATION OR MB_SYSTEMMODAL)
        END IF

        ' speichern - Taste S (save/speichern)
        IF MULTIKEY(&h1F) THEN SPEICHERN

        ' einen neuen Teilnehmer eingeben - Taste N (New/Neu)
        IF MULTIKEY(&h31) THEN
            i = TAZ+1
            ANZEIGE(TAZ+1)
            INGET 35, 9, 23, Eingabe(1)
            Spieler(i) = Eingabe(1)
            k = 1
            TAZ = 0
            DO
                IF Spieler(k) = "" THEN EXIT DO
                TAZ += 1
                k += 1
            LOOP
            ANZEIGE(TAZ)
        END IF

        'letzten Eintrag aufrufen mit Bild-Ab-Taste
        IF MULTIKEY(&h51) THEN
            i = TAZ
            ANZEIGE(TAZ)
        END IF

        ' Spieler 1 aufrufen mit Bild-Auf-Taste
        IF MULTIKEY(&h49) THEN
            i = 1
            ANZEIGE(1)
        END IF

        ' nach oben - Pfeiltaste nach oben -1
        IF MULTIKEY(&h48) AND Tastensperre(1) AND TAZ > 0 THEN
            Tastensperre(1) = FALSE
            i -= 1
            IF i < 1 THEN i = 1
            ANZEIGE(i)
        END IF
        IF MULTIKEY(&h48) THEN Tastensperre(1) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(1) = TRUE

        ' nach unten - Pfeiltaste nach unten +1
        IF MULTIKEY(&h50) AND Tastensperre(2) AND TAZ > 0 THEN
            Tastensperre(2) = FALSE
            i += 1
            IF i >= TAZ THEN i = TAZ
            ANZEIGE(i)
        END IF
        IF MULTIKEY(&h50) THEN Tastensperre(2) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(2) = TRUE

        ' nach unten - Pfeiltaste nach links -24
        IF MULTIKEY(&h4B) AND Tastensperre(3) AND TAZ > 0 THEN
            Tastensperre(3) = FALSE
            IF i > 1 THEN i -= 24
            IF i <= 0 THEN i = 1
            ANZEIGE(i)
        END IF
        IF MULTIKEY(&h4B) THEN Tastensperre(3) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(3) = TRUE

        ' nach oben - Pfeiltaste nach rechts +24
        IF MULTIKEY(&h4D) AND Tastensperre(4) AND TAZ > 0 THEN
            Tastensperre(4) = FALSE
            IF i < TAZ THEN i += 24
            IF i >= TAZ THEN i = TAZ
            ANZEIGE(i)
        END IF
        IF MULTIKEY(&h4D) THEN Tastensperre(4) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(4) = TRUE

        ' Datei anlegen - Taste STRG + A
        IF MULTIKEY(&h1E) AND MULTIKEY(&h1D) THEN ANLEGEN

        ' Eintrag aus Datei löschen - STRG + Taste E (Löschen / Entfernen)
        IF MULTIKEY(&h26) AND MULTIKEY(&h12) THEN LOESCHEN

        ' Datei laden - Taste L (Load/Laden)
        IF MULTIKEY(&h26) THEN LADEN
    END IF

    IF Seite = 2 THEN

        ' nach oben - Pfeiltaste nach oben -1
        IF MULTIKEY(&h48) AND Tastensperre(1) THEN
            IF ppr < 60 THEN Tastensperre(1) = FALSE
            Brett -= 1
            IF Brett < 1 THEN Brett = 1
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h48) AND ppr < 60 THEN Tastensperre(1) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(1) = TRUE

        ' nach unten - Pfeiltaste nach unten +1
        IF MULTIKEY(&h50) AND Tastensperre(2) THEN
            IF ppr < 60 THEN Tastensperre(2) = FALSE
            Brett += 1
            IF Brett >= ppr THEN Brett = ppr
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h50) AND ppr < 60 THEN Tastensperre(2) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(2) = TRUE

        ' nach unten - Pfeiltaste nach links -59
        IF MULTIKEY(&h4B) AND Tastensperre(3) AND ppr > 59 THEN
            Tastensperre(3) = FALSE
            IF Brett > 1 THEN Brett -= 59
            IF Brett <= 0 THEN Brett = 1
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h4B) THEN Tastensperre(3) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(3) = TRUE

        ' nach oben - Pfeiltaste nach rechts +59
        IF MULTIKEY(&h4D) AND Tastensperre(4) AND ppr > 59 THEN
            Tastensperre(4) = FALSE
            IF Brett < ppr THEN Brett += 59
            IF Brett >= ppr THEN Brett = ppr
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h4D) THEN Tastensperre(4) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(4) = TRUE

        ' Runde vor - (Plus-Taste)
        IF MULTIKEY(&h4E) AND Tastensperre(5) AND Runde < RAZ THEN
            Tastensperre(5) = FALSE
            Brett = 1
            Runde += 1
            FONT "RUNDE: " + LTRIM$(STR$(Runde)) + " ", 7, 88, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h4E) THEN Tastensperre(5) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(5) = TRUE

        ' Runde zurück - (Minus-Taste)
        IF MULTIKEY(&h0C) AND Tastensperre(6) AND Runde > 1 THEN
            Tastensperre(6) = FALSE
            Brett = 1
            Runde -= 1
            FONT "RUNDE: " + LTRIM$(STR$(Runde)) + " ", 7, 88, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h0C) THEN Tastensperre(6) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(6) = TRUE

        ' Auslosen - Taste A
        IF MULTIKEY(&h1E) THEN AUSLOSUNG

        ' Punkte eingeben - Taste 1 - Gewinn Weiß (1-0)
        IF MULTIKEY(&h02) AND Tastensperre(7) THEN
            Tastensperre(7) = FALSE
            Punkte(paarungen(Brett,1,Runde),Runde) = 1 ' "1"
            Punkte(paarungen(Brett,2,Runde),Runde) = 0 ' "0"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
            SLEEP 2000/TAZ, 1
            IF brett < ppr THEN
                Brett +=1
                AUSLOSUNG
                ERGEBNISANZEIGE
            END IF
        END IF
        IF MULTIKEY(&h02) THEN Tastensperre(7) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(7) = TRUE

        ' Punkte eingeben - Taste 0 - Gewinn Schwarz (0-1)
        IF MULTIKEY(&h0B) AND Tastensperre(8) THEN
            Tastensperre(8) = FALSE
            Punkte(paarungen(Brett,1,Runde),Runde) = 0 ' "0"
            Punkte(paarungen(Brett,2,Runde),Runde) = 1 ' "1"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
            SLEEP 2000/TAZ, 1
            IF brett < ppr THEN
                Brett +=1
                AUSLOSUNG
                ERGEBNISANZEIGE
            END IF
        END IF
        IF MULTIKEY(&h0B) THEN Tastensperre(8) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(8) = TRUE

        ' Punkte eingeben - Taste 2 - Remis (1/2:1/2)
        IF MULTIKEY(&h03) AND Tastensperre(9) THEN
            Tastensperre(9) = FALSE
            Punkte(paarungen(Brett,1,Runde),Runde) = 0.5 ' "0.5"
            Punkte(paarungen(Brett,2,Runde),Runde) = 0.5 ' "0.5"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
            SLEEP 2000/TAZ, 1
            IF brett < ppr THEN
                Brett +=1
                AUSLOSUNG
                ERGEBNISANZEIGE
            END IF
        END IF
        IF MULTIKEY(&h03) THEN Tastensperre(9) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(9) = TRUE

        ' Kampflose Ergebnisse eintragen - Taste K
        IF MULTIKEY(&h25) AND Tastensperre(10) THEN
            Tastensperre(10) = FALSE
            kampflose(Brett, Runde) = 1
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h25) THEN Tastensperre(10) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(10) = TRUE

        /' Punkte eingeben - Taste ??? = Kampflos beide Spieler (---)
    IF MULTIKEY(&h1D) AND MULTIKEY(&h0C) AND Tastensperre(12) THEN
            Tastensperre(11) = FALSE
            Punkte((paarungen(Brett,1,Runde)),Runde) = 0 ' "-"
            Punkte((paarungen(Brett,2,Runde)),Runde) = 0 ' "-"
            kampflose(Brett, Runde) = 1
            ERGEBNISANZEIGE
        END IF
        ' IF MULTIKEY(&h0C) THEN Tastensperre(11) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(11) = TRUE
        '/


        /' Punkte eingeben - Taste ??? = Verloren beide Spieler (0-0)
        IF MULTIKEY(&h1D) AND MULTIKEY(&h0C) AND Tastensperre(13) THEN
            Tastensperre(13) = FALSE
            Punkte((paarungen(Brett,1,Runde)),Runde) = 0 ' "0"
            Punkte((paarungen(Brett,2,Runde)),Runde) = 0 ' "0"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
        END IF
        ' IF MULTIKEY(&h0C) THEN Tastensperre(11) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(12) = TRUE
        '/


        /' Punkte eingeben - Taste ??? = Verloren/Remis (0-0,5)
        IF MULTIKEY(&h1D) AND MULTIKEY(&h0C) AND Tastensperre(14) THEN
            Tastensperre(14) = FALSE
            Punkte((paarungen(Brett,1,Runde)),Runde) = 0 ' "0"
            Punkte((paarungen(Brett,2,Runde)),Runde) = 0 ' "0.5"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
        END IF
        ' IF MULTIKEY(&h0C) THEN Tastensperre(14) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(14) = TRUE
        '/


        /' Punkte eingeben - Taste ??? = Remis/Verloren (0,5-0)
        IF MULTIKEY(&h1D) AND MULTIKEY(&h0C) AND Tastensperre(15) THEN
            Tastensperre(15) = FALSE
            Punkte((paarungen(Brett,1,Runde)),Runde) = 0 ' "0.5"
            Punkte((paarungen(Brett,2,Runde)),Runde) = 0 ' "0"
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
        END IF
        ' IF MULTIKEY(&h0C) THEN Tastensperre(15) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(15) = TRUE
        '/


        ' Punkte löschen - Taste Entf
        IF MULTIKEY(&h53) AND Tastensperre(16) THEN
            Tastensperre(16) = FALSE
            Punkte(paarungen(Brett,1,Runde),Runde) = 2000
            Punkte(paarungen(Brett,2,Runde),Runde) = 2000
            kampflose(Brett, Runde) = 0
            ERGEBNISANZEIGE
            IF brett < ppr THEN Brett += 1
            AUSLOSUNG
            ERGEBNISANZEIGE
        END IF
        IF MULTIKEY(&h53) THEN Tastensperre(16) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(16) = TRUE

END IF

IF Seite = 3 THEN

    ' nach oben - Pfeiltaste nach oben -1
    IF MULTIKEY(&h48) AND Tastensperre(1) THEN
        IF TAZ < 70 THEN Tastensperre(1) = FALSE
        Platz -= 1
        IF Platz < 1 THEN Platz = 1
        PUNKTEANZEIGE
    END IF
    IF MULTIKEY(&h48) AND ppr < 60 THEN Tastensperre(1) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(1) = TRUE

    ' nach unten - Pfeiltaste nach unten +1
    IF MULTIKEY(&h50) AND Tastensperre(2) THEN
        IF TAZ < 70 THEN Tastensperre(2) = FALSE
        Platz += 1
        IF Platz >= TAZ THEN Platz = TAZ
        PUNKTEANZEIGE
    END IF
    IF MULTIKEY(&h50) AND ppr < 60 THEN Tastensperre(2) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(2) = TRUE

    ' nach unten - Pfeiltaste nach links -70
    IF MULTIKEY(&h4B) AND Tastensperre(3) AND TAZ > 70 THEN
        Tastensperre(3) = FALSE
        IF Platz > 1 THEN Platz -= 70
        IF Platz <= 0 THEN Platz = 1
        PUNKTEANZEIGE
    END IF
    IF MULTIKEY(&h4B) THEN Tastensperre(3) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(3) = TRUE

    ' nach oben - Pfeiltaste nach rechts +70
    IF MULTIKEY(&h4D) AND Tastensperre(4) AND TAZ > 70 THEN
        Tastensperre(4) = FALSE
        IF Platz < TAZ THEN Platz += 70
        IF Platz >= TAZ THEN Platz = TAZ
        PUNKTEANZEIGE
    END IF
    IF MULTIKEY(&h4D) THEN Tastensperre(4) = FALSE ELSE IF mausk <> 1 THEN Tastensperre(4) = TRUE
END IF

' Teilnehmer aufrufen - Taste T
IF MULTIKEY(&h14) THEN
    IF Seite <> 1 THEN
        SCREENRES 1024, 420, 32
        Seite = 1
        MENU
        ANZEIGE(i)
    END IF
END IF

' Paarungen aufrufen - Taste P
IF MULTIKEY(&h19) THEN
    IF Seite <> 2 THEN
        SCREENRES 1024, 620, 32
        Seite = 2
        MENU
        ANZEIGE(i)
    END IF
END IF

' Rangliste aufrufen - Taste R
IF MULTIKEY(&h13) THEN
    IF Seite <> 3 THEN
        SCREENRES 1024, 640, 32
        Seite = 3
        MENU
        PUNKTEANZEIGE
    END IF
END IF


' Programmende mit ESC-Taste
IF MULTIKEY(&h01) THEN END

SLEEP 1

IF taste = CHR(27) OR taste = CHR(255, 107) THEN EXIT DO

SCREENLOCK
FONT TIME, 2, 120, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
SCREENUNLOCK

LOOP ' Ende

' CLOSEN
END

SUB ANZEIGE (i AS INTEGER)

    IF Seite = 1 THEN
        SCREENLOCK
        IF TAZ >= 1 THEN FONT "Eintrag: " + LTRIM$(STR$(i)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        IF TAZ = 0 THEN FONT "Eintrag: " + LTRIM$(STR$(i-1)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        FONT "                                    ", 9, 23, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0 ' Name, Vorname
        FONT "     ", 9, 66, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "     ", 9, 78, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "    ", 9, 92, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "                      ", 9, 106, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "     ", 9, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        'ausgewählten Spieler anzeigen
        FONT i & ".", 9, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT Spieler(i), 9, 23, &hFFFFFF, &h55FF55, &h00AA00, 0, 0
        IF ELO(i) <> 0 THEN FONT LTRIM$(STR$(ELO(i))), 9, 66, &hFFFFFF, &h55FF55, &h00AA00, 0, 0
        IF DWZ(i) <> 0 THEN FONT LTRIM$(STR$(DWZ(i))), 9, 78, &hFFFFFF, &h55FF55, &h00AA00, 0, 0
        IF Titel(i) <> "" THEN FONT LTRIM$(STR$(Titel(i))), 9, 92, &hFFFFFF, &h55FF55, &h00AA00, 0, 0
        IF Verein(i) <> "" THEN FONT Verein(i), 9, 106, &hFFFFFF, &h55FF55, &h00AA00, 0, 0

        ' &hFFFFFF, &hAAAAAA, &h555555

        FOR k = 0 TO 23
            FONT "                                                                                                                        ", k+20, 5, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        NEXT

        ' 24 Teilnehmer/Spieler anzeigen
        FOR j = 0 TO 23
            ' FONT "Teilnehmer                                 ELO         DWZ           Titel         Verein", 1+17, 5, &hFFFFFF, &hFF55FF, &hAA00AA
            IF Spieler(i+j) = "" THEN EXIT FOR ' Schleife verlassen, wenn letzter Spieler aufgerufen wurde!
            FONT i+j & ": " & Spieler(i+j), j+ 20, 5, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            IF ELO(i+j) > 0 THEN FONT LTRIM$(STR$(ELO(i+j))), j+20, 66-18, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            IF DWZ(i+j) > 0 THEN FONT LTRIM$(STR$(DWZ(i+j))), j+20, 78-18, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            IF Titel(i+j) <> "" THEN FONT LTRIM$(STR$(Titel(i+j))), j+20, 92-18, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            IF Verein(i+j) <> "" THEN FONT Verein(i+j), j+20, 106-18, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
        NEXT

        Eingabe(1) = Spieler(i)
        IF ELO(i) <> 0 THEN Eingabe(2) = STR(ELO(i)) ELSE Eingabe(2) = ""
        IF DWZ(i) <> 0 THEN Eingabe(3) = STR(DWZ(i)) ELSE Eingabe(3) = ""
        Eingabe(4) = STR(Titel(i))
        Eingabe(5) = Verein(i)

        SCREENUNLOCK
    END IF

END SUB

SUB MENU

    ' SCREENLOCK

    CLS ' Bildschirm löschen

    ' Schaltflächen anzeigen
    FELD 0, 0, 1023, 30, &hAAAAAA

    FELD 2, 2, 93, 28, 0 ' Teilnehmer
    FELD 97, 2, 182, 28, 0 ' Paarungen

    FELD 186, 2, 268, 28, 0 ' Tabelle


    FELD 944, 2, 1021, 28, 0 ' Feld für die Uhranzeige

    FONT "TEILNEHMER", 2, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1
    FONT "PAARUNGEN", 2, 14, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1
    FONT "RANGLISTE", 2, 25, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1

    IF Seite = 1 THEN
        ' Eingabefelder anzeigen
        FELD 48, 57, 470, 77, 0 ' Name, Vorname
        FELD 475, 57, 565, 77, 0 ' ELO
        FELD 570, 57, 660, 77, 0 ' DWZ
        FELD 665, 57, 765, 77, 0 ' Titel
        FELD 770, 57, 1020, 77, 0  ' Verein

        '
        FELD 8, 386, 77, 406, 0 ' Datei anlegen
        FELD 87, 386, 142, 406, 0 ' Datei laden
        FELD 152, 386, 238, 406, 0 ' Datei speichern
        FELD 248, 386, 380, 406, 0 ' neuer Spieler
        FELD 390, 386, 494, 406, 0 ' Spieler löschen

        '
        FELD 28, 130, 992, 348, 0 ' Anzeige Teilnehmer

        FONT "Teilnehmer                                 ELO         DWZ           Titel         Verein", 18, 5, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        FONT i & ".", 9, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0 ' Anzeige ausgewählter Spieler

        FONT "Name, Vorname:", 9, 8, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "ELO:", 9, 61, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "DWZ:", 9, 73, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "Titel:", 9, 85, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "Verein:", 9, 98, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        FONT "ANLEGEN", 50, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1
        FONT "LADEN", 50, 13, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1
        FONT "SPEICHERN", 50, 21, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1

        FONT " NEUER SPIELER ", 50, 33, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 2
        ' FONT "  LöSCHEN  ", 50, 51, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT " ENTFERNEN ", 50, 51, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 2

        IF TAZ > 1 THEN FONT "Eintrag: " + LTRIM$(STR$(i)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        IF TAZ = 0 THEN FONT "Eintrag: " + LTRIM$(STR$(i-1)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
    END IF

    IF Seite = 2 THEN

        FONT "RUNDE: " + LTRIM$(STR$(Runde)) + " ", 7, 88, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        '
        FELD 332, 67, 1021, 548, 0 ' Anzeige Paarungstafel
        FELD 262, 67, 322, 548, 0 ' Anzeige Punktetafel
        FELD 332, 563, 411, 596, 0 ' Auslosung

        ' Ergebnisauswahlfelder
        FELD 6, 66, 67, 84, 0 ' Feld 1-0
        FELD 76, 66, 137, 84, 0 ' Feld 1/2-1/2
        FELD 146, 66, 207, 84, 0 ' Feld 0-1
        FELD 6, 89, 67, 109, 0 ' Feld 1/2-0
        FELD 76, 89, 137, 109, 0 ' Feld 0-1/2
        FELD 146, 89, 207, 109, 0 ' Feld 0-0
        FELD 6, 114, 67, 134, 0 ' Feld +--
        FELD 76, 114, 137, 134, 0 ' Feld ---
        FELD 146, 114, 207, 134, 0 ' Feld --+

        ' mögliche Ergebnisse
        FONT "1-0", 10, 4, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "1/2-1/2", 10, 11, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "0-1", 10, 22, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "1/2-0", 13, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "0-1/2", 13, 12, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "0-0", 13, 22, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "+--", 16, 4, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "---", 16, 13, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "--+", 16, 22, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0


        ' Auslosung
        FONT "AUSLOSUNG", 72, 43, &hFFFFFF, &hFF55FF, &hAA00AA, 1, 1

        ' FELD 87, 386, 142, 406, 0 ' Datei laden

    END IF

    IF Seite = 3 THEN
        ' Eingabefelder anzeigen

        FELD 3, 57, 43, 635, 0 ' Platz
        FELD 48, 57, 340, 635, 0 ' Name, Vorname


        FELD 345, 57, 390, 635, 0 ' ELO         - 475 565
        FELD 395, 57, 440, 635, 0 ' DWZ         - 570 660
        FELD 445, 57, 490, 635, 0 ' Titel       - 665 765
        FELD 495, 57, 600, 635, 0  ' Punkte - 770 1020

        FONT "Rang", 7, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "Teilnehmer", 7, 8, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "ELO", 7, 45, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "DWZ", 7, 51, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "Titel", 7, 57, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "Punkte", 7, 63, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0

        ' FONT "2000.5", 9, 63, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0


    END IF

    FONT TIME, 2, 120, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0 ' Uhrzeit anzeigen

    ' SCREENUNLOCK

END SUB

SUB BUTTON (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER)

    LINE (X, Y)-(X, YY), &h555555
    LINE (X, Y)-(XX, Y), &h555555
    LINE (X, YY)-(XX, YY), &hFFFFFF
    LINE (XX, Y)-(XX, YY), &hFFFFFF

    DO
        GETMOUSE mausx, mausy,, mausk
        SCREENLOCK
        FONT TIME, 2, 120, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0' Zeit anzeigen
        SCREENUNLOCK
        SLEEP 1
        IF mausk = 0 THEN EXIT DO
    LOOP

    LINE (X, Y)-(X, YY), &hFFFFFF
    LINE (X, Y)-(XX, Y), &hFFFFFF
    LINE (X, YY)-(XX, YY), &h555555
    LINE (XX, Y)-(XX, YY), &h555555
END SUB

SUB FELD (X AS INTEGER, Y AS INTEGER, XX AS INTEGER, YY AS INTEGER, FARBEN AS INTEGER)

    LINE (X, Y)-(X, YY), &hFFFFFF
    LINE (X, Y)-(XX, Y), &hFFFFFF
    LINE (X, YY)-(XX, YY), &h555555
    LINE (XX, Y)-(XX, YY), &h555555
    VIEW (X + 2, Y + 2)-(XX - 2, YY - 2), FARBEN, FARBEN
    VIEW (0, 0)-(1024, 647)

END SUB

SUB FONT (WORT AS STRING, HOEHE AS INTEGER, BREITE AS INTEGER, FARBE1 AS INTEGER, FARBE2 AS INTEGER, FARBE3 AS INTEGER, ATTRIBUT AS INTEGER, STELLE AS INTEGER)

    REM PALETTE 7, 7
    COLOR 7

    IF Sonderzeichen = 0 THEN CharToOem Wort, Wort

    L = LEN(WORT)

    LOCATE HOEHE, BREITE: PRINT WORT;
    T = HOEHE * 8 - 8
    FOR E = BREITE * 8 - 8 TO BREITE * 8 + L * 8 - 8
        IF E >= ((Breite*8+(8*STELLE))-16) AND E < ((Breite*8+(8*STELLE))-8) AND ATTRIBUT = 1 THEN
            FOR XXX = 0 TO 7
                IF XXX < 2 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), &hFFFFFF
                IF XXX > 1 AND XXX < 5 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), &h55FFFF
                IF XXX > 4 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), &h00AAAA
            NEXT
        ELSE
            FOR XXX = 0 TO 7
                IF XXX < 2 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), FARBE1
                IF XXX > 1 AND XXX < 5 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), FARBE2
                IF XXX > 4 AND POINT(E, T + XXX) = 7 THEN PSET (E, T + XXX), FARBE3
            NEXT
        END IF
    NEXT
    PALETTE
    COLOR 15

END SUB

SUB INGET (ANZAHLE AS INTEGER, STELLEN AS INTEGER, ZEILEN AS INTEGER, N AS STRING)
    N = RTRIM(N)
    BB = LEN(N)

    Sonderzeichen = TRUE

    FONT N + "_", STELLEN, ZEILEN, &hFFFFFF, &hAAAAAA, &h555555, 0, 0

    Ausgabe:
    AA = ""
    WHILE AA = ""
        COLOR &hFFFFFF
        AA = INKEY$
        SLEEP 1
    WEND

    IF MULTIKEY(&h01) THEN END

    IF ASC(AA) < 32 AND ASC(AA) <> 27 AND ASC(AA) <> 13 AND ASC(AA) <> 8 THEN GOTO Ausgabe
    IF ASC(AA) > 126 AND ASC(AA) <> 129 AND ASC(AA) <> 132 AND ASC(AA) <> 142 AND ASC(AA) <> 148 AND ASC(AA) <> 153 AND ASC(AA) <> 154 THEN GOTO Ausgabe
    ' IF ASC(AA) > 126 THEN GOTO Ausgabe
    IF LEFT(AA, 1) = CHR(0) THEN GOTO Ausgabe
    SELECT CASE AA
        CASE CHR(13), CHR(27): FONT N + " ", STELLEN, ZEILEN, &hFFFFFF, &hAAAAAA, &h555555, 0, 0: GOTO ENDE
        CASE CHR(8): BB -= 1: IF BB < 0 THEN BB = 0:  ELSE N = LEFT(N, BB): FONT N + "_ ", STELLEN, ZEILEN, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
        CASE IS <> "": BB += 1: IF BB = ANZAHLE + 1 THEN BB = BB - 1: GOTO Ausgabe ELSE N = N + AA: FONT N + "_", STELLEN, ZEILEN, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
    END SELECT
    GOTO Ausgabe
    ENDE:
END SUB

SUB SORTIEREN

    FOR j = 1 TO TAZ
        FOR k = 1 TO TAZ-1
            IF DWZ(k) < DWZ(k+1) THEN SWAP ELO(k), ELO(k+1): SWAP DWZ(k), DWZ(k+1): SWAP Titel(k), Titel(k+1): SWAP Spieler(k), Spieler(k+1): SWAP Verein(k), Verein(k+1)
        NEXT
    NEXT

    DIM f AS INTEGER = FREEFILE

    /' sortierte Datei speichern
    IF DateiName <> "" THEN
        OPEN DateiName FOR OUTPUT AS #f
        FOR j = 1 TO TAZ
            OemToChar Spieler(j), Spieler(j)
            OemToChar Verein(j), Verein(j)
            WRITE #f, ELO(j), DWZ(j), Titel(j), Spieler(j), Verein(j)
            CharToOem Spieler(j), Spieler(j)
            CharToOem Verein(j), Verein(j)
        NEXT
        CLOSE #f
    ELSE
        DateiName = LOADSAVEDIALOG (1,fil,1,,"stop")
        OPEN DateiName FOR OUTPUT AS #f
        FOR j = 1 TO TAZ
            OemToChar Spieler(j), Spieler(j)
            OemToChar Verein(j), Verein(j)
            WRITE #f, ELO(j), DWZ(j), Titel(j), Spieler(j), Verein(j)
            CharToOem Spieler(j), Spieler(j)
            CharToOem Verein(j), Verein(j)
        NEXT
        CLOSE #f
    END IF
    '/


    ' CharToOem Spieler(k+1), Spieler(k+1)
    ' CharToOem Verein(k+1), Verein(k+1)

    ' CharToOem Spieler(k), Spieler(k)
    ' CharToOem Verein(k), Verein(k)

    ' OemToChar Spieler(k), Spieler(k)
    ' OemToChar Verein(k), Verein(k)

END SUB

SUB LOESCHEN

    ' Dateiendung definieren
    fil = "Turnierdateien (*.stop)" + CHR(0) + "*.STOP" + CHR(0)

    ' Eintrag aus Datei löschen
    ' Datei anschließend neu laden

    Eintrag(i) = 1 ' Eintrag zum löschen auswählen!

    ' gelöschte Einträge zählen
    vorhandeneEintraege = 0
    FOR j = 1 TO maxAnzahl
        IF Eintrag(j) = 1 THEN vorhandeneEintraege += 1
    NEXT

    ' Anzahl der Einträge ermitteln
    TAZ -= vorhandeneEintraege
    TAZ += 1

    DIM f AS INTEGER = FREEFILE

    ' Datei nach löschen eines Elementes speichern
    IF DateiName <> "" THEN
        OPEN DateiName FOR OUTPUT AS #f
        FOR j = 1 TO TAZ
            OemToChar Spieler(j), Spieler(j)
            OemToChar Verein(j), Verein(j)
            IF Eintrag(j) <> 1 THEN WRITE #f, ELO(j), DWZ(j), Titel(j), Spieler(j), Verein(j)
        NEXT
        CLOSE #f
        MessageBox(0, "löschen erfolgreich!", "Schachturnierorganisationsprogramm", MB_ICONINFORMATION OR MB_SYSTEMMODAL)
    END IF
    IF DateiName = "" AND ELO(1) <> 0 THEN
        DateiName = LOADSAVEDIALOG (1,fil,1,,"stop")
        OPEN DateiName FOR OUTPUT AS #f
        FOR j = 1 TO TAZ
            OemToChar Spieler(j), Spieler(j)
            OemToChar Verein(j), Verein(j)
            IF Eintrag(j) <> 1 THEN WRITE #f, ELO(j), DWZ(j), Titel(j), Spieler(j), Verein(j)
        NEXT
        CLOSE #f
        IF DateiName <> "" THEN MessageBox(0, "löschen erfolgreich!", "Schachturnierorganisationsprogramm", MB_ICONINFORMATION OR MB_SYSTEMMODAL)
    END IF

    Eintrag(i) = 0          ' Eintrag wurde gelöscht und wird wieder freigeben für den nächsten Löschvorgang
    vorhandeneEintraege = 0 ' Variable auf 0 setzen

    ' Werte aus Datei einlesen
    IF DateiName <> "" THEN
        FOR j = 1 TO MaxAnzahl
            Spieler(j) = ""
            ELO(j) = 0
            DWZ(j) = 0
            Titel(j) = ""
            Verein(j) = ""
        NEXT

        ' Daten einlesen
        OPEN DateiName FOR INPUT AS #f
        TAZ = 1
        DO UNTIL EOF(f)
            INPUT #f, ELO(TAZ), DWZ(TAZ), Titel(TAZ), Spieler(TAZ), Verein(TAZ)
            CharToOem Spieler(TAZ), Spieler(TAZ)
            CharToOem Verein(TAZ), Verein(TAZ)
            TAZ += 1
        LOOP
        TAZ -= 1
        CLOSE #f
        Eingabe(1) = Spieler(1)
        IF ELO(1) <> 0 THEN Eingabe(2) = STR(ELO(1))
        IF DWZ(1) <> 0 THEN Eingabe(3) = STR(DWZ(1))
        Eingabe(4) = STR(Titel(1))
        Eingabe(5) = Verein(1)
        i = 1
        ANZEIGE(i)
    END IF
END SUB

SUB LADEN

    DIM f AS INTEGER = FREEFILE
    fil = "Turnierdateien (*.stop)" + CHR(0) + "*.STOP" + CHR(0)
    DateiName = LOADSAVEDIALOG (,fil,1,,"stop")
    IF DateiName <> "" THEN
        FOR j = 1 TO MaxAnzahl
            Spieler(j) = ""
            ELO(j) = 0
            DWZ(j) = 0
            Titel(j) = ""
            Verein(j) = ""
        NEXT
        OPEN DateiName FOR INPUT AS #f
        TAZ = 1
        DO UNTIL EOF(f)
            INPUT #f, ELO(TAZ), DWZ(TAZ), Titel(TAZ), Spieler(TAZ), Verein(TAZ)
            CharToOem Spieler(TAZ), Spieler(TAZ)
            CharToOem Verein(TAZ), Verein(TAZ)
            TAZ += 1
        LOOP
        TAZ -= 1
        CLOSE #f
        Eingabe(1) = Spieler(1)
        IF ELO(1) <> 0 THEN Eingabe(2) = STR(ELO(1))
        IF DWZ(1) <> 0 THEN Eingabe(3) = STR(DWZ(1))
        Eingabe(4) = STR(Titel(1))
        Eingabe(5) = Verein(1)

        i = 1
        ' RUECKSETZEN

        Sonderzeichen = TRUE

        ANZEIGE(i)
        WINDOWTITLE DateiName

        OemToChar Spieler(0), Spieler(0)

    END IF

END SUB

FUNCTION LOADSAVEDIALOG (savedlog AS INTEGER, filter AS STRING, fltrindex AS INTEGER,_
    initdir AS STRING, strDefExt AS STRING) AS STRING

    DIM FB_OFN AS OPENFILENAME
    FB_OFN.lStructSize = LEN(FB_OFN)
    FB_OFN.hwndOwner = 0 ' nur Console
    FB_OFN.hInstance = 0

    DIM strFilter AS STRING
    IF filter = "" THEN
        strFilter = "Alle Dateien (*.*)" + CHR(0) +"*.*" + CHR(0, 0) 'Vorgabe
    ELSE
        strFilter = filter + CHR(0, 0)
    END IF
    FB_OFN.lpstrFilter = STRPTR(strFilter)
    FB_OFN.nFilterIndex = fltrindex

    DIM strFile AS STRING *2048
    strFile = SPACE(2047) + CHR(0)
    FB_OFN.lpstrFile = STRPTR(strFile)
    FB_OFN.nMaxFile = LEN(strFile)

    DIM strFileTitle AS STRING *2048
    strFileTitle = STRING(2048, 0)
    FB_OFN.lpstrFileTitle = STRPTR(strFileTitle)
    FB_OFN.nMaxFileTitle = LEN(strFileTitle)

    DIM strdrstr AS STRING
    IF initdir = "" THEN
        strdrstr = "."     ' Vorgabe aktueller Pfad
    ELSE
        strdrstr = initdir
    END IF
    FB_OFN.lpstrInitialDir = STRPTR(strdrstr)

    DIM strcapt AS STRING
    IF savedlog = 1 THEN
        strcapt = "Dateien Speichern"
        FB_OFN.lpstrTitle = STRPTR(strcapt)
        IF strDefExt > "" THEN
            DIM strdext AS STRING
            strdext = strDefExt
            FB_OFN.lpstrDefExt = STRPTR(strdext)
        END IF
        FB_OFN.flags = OFN_EXPLORER OR OFN_LONGNAMES OR OFN_OVERWRITEPROMPT OR OFN_HIDEREADONLY
        IF GetSaveFileName(@FB_OFN) THEN LOADSAVEDIALOG = TRIM(strFile)
    ELSE
        IF savedlog = 0 THEN
            strcapt = "Dateien öffnen"
            FB_OFN.lpstrTitle = STRPTR(strcapt)
            FB_OFN.flags = OFN_EXPLORER OR OFN_LONGNAMES OR OFN_CREATEPROMPT OR _
            OFN_NODEREFERENCELINKS OR OFN_HIDEREADONLY
            IF GetOpenFileName(@FB_OFN) THEN LOADSAVEDIALOG = TRIM(strFile)
        END IF
    END IF

    IF savedlog = 2 THEN
        strcapt = "Datei anlegen"
        FB_OFN.lpstrTitle = STRPTR(strcapt)
        IF strDefExt > "" THEN
            DIM strdext AS STRING
            strdext = strDefExt
            FB_OFN.lpstrDefExt = STRPTR(strdext)
        END IF
        FB_OFN.flags = OFN_EXPLORER OR OFN_LONGNAMES OR OFN_OVERWRITEPROMPT OR OFN_HIDEREADONLY
        IF GetSaveFileName(@FB_OFN) THEN LOADSAVEDIALOG = TRIM(strFile)
    END IF
END FUNCTION

SUB ANLEGEN

    fil = "Schachturnierorganisationsprogramm (*.stop)" + CHR(0) + "*.STOP" + CHR(0)
    MessageBox(0, "Achtung, alte Dateien werden überschrieben!", "Schachturnierorganisationsprogramm", MB_ICONWARNING OR MB_SYSTEMMODAL)
    DateiName = LOADSAVEDIALOG (2,fil,1,,"stop")
    DIM f AS INTEGER = FREEFILE

    OPEN DateiName FOR OUTPUT AS #F
    OemToChar Spieler(1), Spieler(1)
    OemToChar Verein(1), Verein(1)
    WRITE #f, ELO(1), DWZ(1), Titel(1), Spieler(1), Verein(1)
    CharToOem Spieler(1), Spieler(1)
    CharToOem Verein(1), Verein(1)
    CLOSE #F
    IF DateiName <> "" THEN MessageBox(0, "Datei wurde angelegt!", "Schachturnierorganisationsprogramm", MB_ICONINFORMATION OR MB_SYSTEMMODAL)

END SUB

SUB SPEICHERN
    j = 1
    IF Spieler(TAZ+1) = "" AND ELO(TAZ+1) = 0 AND DWZ(TAZ+1) = 0 AND Titel(TAZ+1) = "" AND Verein(TAZ+1) = "" THEN
        TAZ -= 1
    END IF

    DIM f AS INTEGER = FREEFILE
    IF DateiName <> "" THEN
        OPEN DateiName FOR OUTPUT AS #f
        DO

            ' ***************************************************************************************
            OemToChar Spieler(j), Spieler(j)
            OemToChar Verein(j), Verein(j)
            WRITE #f, ELO(j), DWZ(j), Titel(j), Spieler(j), Verein(j)
            CharToOem Spieler(j), Spieler(j)
            CharToOem Verein(j), Verein(j)
            ' ***************************************************************************************

            j += 1
        LOOP WHILE j <= TAZ+1
        TAZ += 1
        CLOSE #f
        MessageBox(0, "Alles gespeichert!", "Schachturnierorganisationsprogramm", MB_ICONINFORMATION OR MB_SYSTEMMODAL)
        SCREENLOCK
        IF TAZ > 1 THEN FONT "Eintrag: " + LTRIM$(STR$(i)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        IF TAZ = 0 THEN FONT "Eintrag: " + LTRIM$(STR$(i-1)) + " von " + LTRIM$(STR$(TAZ)) + "    ", 45, 3, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        SCREENUNLOCK
    END IF
    IF DateiName = "" THEN
        ' MessageBox(0, "Speichern nicht möglich!", "Schienendatenbank", MB_ICONINFORMATION OR MB_SYSTEMMODAL)

        ' DIM f AS INTEGER = FREEFILE

        fil = "Turnierdateien (*.stop)" + CHR(0) + "*.STOP" + CHR(0)
        DateiName = LOADSAVEDIALOG (1,fil,1,,"stop")

    END IF
END SUB

SUB AUSLOSUNG

    ' DIM AS INTEGER startwert, Paarungssystem, sx, r, RAZ, ppr, rotation
    IF TAZ < 3 THEN EXIT SUB


    ' Rundensystem
    IF Paarungssystem = 1 THEN

        ' Partien pro Runde ermitteln!
        IF TAZ MOD 2 <> 0 THEN
            ppr = (TAZ - 1) / 2
            ppr += 1
            RAZ = TAZ
            ' IF ppr < 0 THEN ppr = 1
            ' IF RAZ < 0 THEN RAZ = 1
        ELSE
            ppr = TAZ / 2
            RAZ = TAZ - 1
            ' IF ppr < 0 THEN ppr = 1
            ' IF RAZ < 0 THEN RAZ = 1
        END IF

        REDIM paarungen((1 TO (ppr+58)), 1 TO 2, 1 TO RAZ) ' Paarungen neu initialisieren

        ' SCREENLOCK
        FELD 332, 67, 1021, 548, 0 ' Anzeige Paarungstafel
        ' SCREENUNLOCK

        startwert=1
        sx = 1
        FOR r = 1 TO RAZ

            rotation=startwert

            FOR j AS INTEGER=1 TO ppr
                paarungen(j,1,r)=rotation
                rotation +=1
                IF rotation>RAZ THEN rotation=1
            NEXT j

            FOR j AS INTEGER=ppr TO 2 STEP -1
                paarungen(j,2,r)=rotation
                rotation +=1
                IF rotation>RAZ THEN rotation=1
            NEXT j

            IF TAZ MOD 2 <> 0 THEN
                paarungen(1,2,r)=TAZ + 1
            ELSE
                paarungen(1,2,r)=TAZ
            END IF

            IF Runde MOD 2 = 0 THEN SWAP paarungen(1,1,r),paarungen(1,2,r) ' bei jeder geraden Runde erstes Paar tauschen

            ' bei mehr als 59 Paarungen, nur 59 anzeigen!
            ' SCREENLOCK
            IF ppr < 59 THEN
                FOR j = 0 TO ppr ' max 59 Paarungen!
                    IF r = Runde THEN
                        IF Spieler(paarungen(j+Brett,1,Runde)) <> "" THEN FONT LTRIM$(STR$(Brett+j)) + "| " + LTRIM$(STR$(paarungen(j+Brett,1,Runde))) + " " + Spieler(paarungen(j+Brett,1,Runde)), 9+sx, 43, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Spieler(paarungen(j+Brett,1,Runde)) <> "" THEN FONT " - " , 9+sx, 83, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Spieler(paarungen(j+Brett,2,Runde)) <> "" THEN FONT LTRIM$(STR$(paarungen(j+Brett,2,Runde))) + " " + Spieler(paarungen(j+Brett,2,Runde)), 9+sx, 86, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    END IF
                    IF MULTIKEY(&h01) THEN END
                    sx +=1
                    IF sx > 59 THEN sx = 1
                NEXT j
            ELSE
                FOR j = 0 TO 58 ' max 59 Paarungen!
                    IF r = Runde THEN
                        IF Spieler(paarungen(j+Brett,1,Runde)) <> "" THEN FONT LTRIM$(STR$(Brett+j)) + "| " + LTRIM$(STR$(paarungen(j+Brett,1,Runde))) + " " + Spieler(paarungen(j+Brett,1,Runde)), 9+sx, 43, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Spieler(paarungen(j+Brett,1,Runde)) <> "" THEN FONT " - " , 9+sx, 83, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Spieler(paarungen(j+Brett,2,Runde)) <> "" THEN FONT LTRIM$(STR$(paarungen(j+Brett,2,Runde))) + " " + Spieler(paarungen(j+Brett,2,Runde)), 9+sx, 86, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    END IF
                    IF MULTIKEY(&h01) THEN END
                    sx +=1
                    IF sx > ppr THEN sx = 1
                NEXT j
            END IF
            startwert=paarungen(ppr,2,r)
        NEXT r
        ' SCREENUNLOCK
    END IF

END SUB

SUB ERGEBNISANZEIGE

    IF Seite = 2 THEN

        ' Ergebnisse anzeigen - maximal 59 Stück!!!
        IF ppr < 60 THEN
            SCREENLOCK
            FOR j = 0 TO ppr
                FONT "       ", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                IF kampflose(Brett+j, Runde) = 0 THEN
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) <> 2000 AND Punkte(paarungen(Brett+j,2,Runde),Runde) <> 2000 AND Punkte(paarungen(Brett+j,1,Runde),Runde) <> 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) <> 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + " - " + LTRIM$(STR$(Punkte((paarungen(Brett+j,2,Runde)),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                ELSE
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) <> 2000 AND Punkte(paarungen(Brett+j,2,Runde),Runde) <> 2000 AND Brett+j <= ppr THEN
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 1 THEN FONT " -" + " - " + "+", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 1 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 THEN FONT " +" + " - " + "-", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 THEN FONT " -" + " - " + "-", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    END IF
                END IF
            NEXT
            SCREENUNLOCK
            EXIT SUB
        END IF
        '/

        ' bei mehr als 59 Paarungen, nur 59 anzeigen!
        IF ppr > 59 THEN
            SCREENLOCK
            FOR j = 0 TO 58
                FONT "       ", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                IF kampflose(Brett+j, Runde) = 0 THEN
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) < 2000 AND Punkte(paarungen(Brett+j,2,Runde),Runde) < 2000 AND Punkte(paarungen(Brett+j,1,Runde),Runde) <> 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) <> 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + " - " + LTRIM$(STR$(Punkte((paarungen(Brett+j,2,Runde)),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0.5 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0.5 AND Brett+j <= ppr THEN FONT LTRIM$(STR$(Punkte(paarungen(Brett+j,1,Runde),Runde))) + "-" + LTRIM$(STR$(Punkte(paarungen(Brett+j,2,Runde),Runde))), j+10, 35, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                ELSE
                    IF Punkte(paarungen(Brett+j,1,Runde),Runde) <> 2000 AND Punkte(paarungen(Brett+j,2,Runde),Runde) <> 2000 AND Brett+j <= ppr THEN
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 1 THEN FONT " -" + " - " + "+", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 1 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 THEN FONT " +" + " - " + "-", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                        IF Punkte(paarungen(Brett+j,1,Runde),Runde) = 0 AND Punkte(paarungen(Brett+j,2,Runde),Runde) = 0 THEN FONT " -" + " - " + "-", j+10, 34, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
                    END IF
                END IF
            NEXT
            SCREENUNLOCK
        END IF
    END IF

END SUB

SUB PUNKTEANZEIGE

    /'
    FOR j = 1 TO TAZ
        Gesamtpunkte(j) = 0
    NEXT
    '/


    FOR k = 1 TO TAZ
        Gesamtpunkte(k) = 0
        FOR j = 1 TO RAZ
            IF Punkte(k,j) <> 2000 AND Punkte(k,j) <> 0 THEN Gesamtpunkte(k) += Punkte(k,j)
        NEXT
    NEXT

    /'
    FOR j = 1 TO TAZ
        FOR k = 1 TO TAZ-1
            IF Gesamtpunkte(k) < Gesamtpunkte(k+1) THEN SWAP Gesamtpunkte(k), Gesamtpunkte(k+1): SWAP Players(k), Players(k+1)
        NEXT
    NEXT
    '/


    ' Tabelle anzeigen
    ' TABELLE

    ' Spielernamen zwischenspeichern
    FOR j = 1 TO TAZ
        Temp(j, 1) = Spieler(j)
    NEXT

    ' ELO zwischenspeichern
    FOR j = 1 TO TAZ
        Temp(j, 2) = LTRIM$(STR$(ELO(j)))
    NEXT

    ' DWZ zwischenspeichern
    FOR j = 1 TO TAZ
        Temp(j, 3) = LTRIM$(STR$(DWZ(j)))
    NEXT

    ' Titel zwischenspeichern
    FOR j = 1 TO TAZ
        Temp(j, 4) = Titel(j)
    NEXT

    ' Spieler nach Punkte sortieren
    FOR j = 1 TO TAZ
        FOR k = 1 TO TAZ-1
            IF Gesamtpunkte(k) < Gesamtpunkte(k+1) THEN
                SWAP Gesamtpunkte(k), Gesamtpunkte(k+1)
                SWAP Temp(k, 1), Temp(k+1, 1)
                SWAP Temp(k, 2), Temp(k+1, 2)
                SWAP Temp(k, 3), Temp(k+1, 3)
                SWAP Temp(k, 4), Temp(k+1, 4)
            END IF
        NEXT
    NEXT

    SCREENLOCK

    ' Bildschirm löschen
    FOR j = 0 TO 70
        FONT "    ", j+9, 2, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "                                   ", j+9, 8, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "    ", j+9, 45, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "    ", j+9, 51, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "     ", j+9, 57, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
        FONT "            ", j+9, 64, &hFFFFFF, &hFF55FF, &hAA00AA, 0, 0
    NEXT

    ' Tabelle Anzeigen
    IF TAZ > 70 THEN
        FOR j = 0 TO 70
            IF Platz+j > TAZ THEN EXIT FOR
            FONT LTRIM$(STR$(Platz+j)), 9+j, 2, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(Platz+j, 1), 9+j, 8, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(Platz+j, 2), 9+j, 45, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(Platz+j, 3), 9+j, 51, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(Platz+j, 4), 9+j, 57, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT LTRIM$(STR$(Gesamtpunkte(Platz+j))), 9+j, 64, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
        NEXT
    ELSE
        FOR j = 1 TO TAZ
            FONT LTRIM$(STR$(j)), 9+j, 2, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(j, 1), 9+j, 8, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(j, 2), 9+j, 45, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(j, 3), 9+j, 51, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT Temp(j, 4), 9+j, 57, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
            FONT LTRIM$(STR$(Gesamtpunkte(j))), 9+j, 64, &hFFFFFF, &hAAAAAA, &h555555, 0, 0
        NEXT
    END IF

    SCREENUNLOCK

END SUB

SUB Tabelle

    /'
    bubbleSort(Array A)
  for (n=A.size; n>1; n=n-1){
    for (i=0; i<n-1; i=i+1){
      if (A[i] > A[i+1]){
        A.swap(i, i+1)
      } // ende if
    } // ende innere for-Schleife
  } // ende äußere for-Schleife


    FOR j =
    '/


    /'
    FOR j = UBOUND(ArrayToSort) - 1 TO LBOUND(ArrayToSort) STEP -1
    ' Alle links davon liegenden Zeichen auf richtige Sortierung
    ' der jeweiligen Nachfolger überprüfen:
    FOR i = LBOUND(ArrayToSort) TO j
      ' Ist das aktuelle Element seinem Nachfolger gegenüber korrekt sortiert?
      IF ArrayToSort(i) > ArrayToSort(i + 1) THEN
        ' Element und seinen Nachfolger vertauschen.
        vTemp = ArrayToSort(i)
        ArrayToSort(i) = ArrayToSort(i + 1)
        ArrayToSort(i + 1) = vTemp
      END IF
    NEXT i
    NEXT j
    '/


    ' DIM AS INTEGER vTemp

    ' LOCATE 8,5: PRINT "Geamt: "; Gesamtpunkte(1)
    ' LOCATE 10,5: PRINT "Gesamt: "; Gesamtpunkte(2)
    ' LOCATE 14,5: PRINT "Punkte: "; Punkte(1,1)



    /'
    FOR j = UBOUND(Gesamtpunkte) TO LBOUND(Gesamtpunkte) STEP -1
        FOR k = LBOUND(Gesamtpunkte) TO j
            IF Gesamtpunkte(k) > Gesamtpunkte(k + 1) THEN
                vTemp = Gesamtpunkte(k)
                Gesamtpunkte(k) = Gesamtpunkte(k + 1)
                Gesamtpunkte(k + 1) = vTemp
            END IF
        NEXT k
    NEXT j
    '/


    ' Spielernamen zwischenspeichern
    FOR j = 1 TO TAZ
        Temp(j, 1) = Spieler(j)
    NEXT


    FOR j = 1 TO TAZ
        FOR k = 1 TO TAZ-1
            IF Gesamtpunkte(k) < Gesamtpunkte(k+1) THEN SWAP Gesamtpunkte(k), Gesamtpunkte(k+1): SWAP Temp(k, 1), Temp(k+1, 1)
        NEXT
    NEXT

    COLOR &hFFFFFF

    ' Testausgabe!!!
    FOR j = 1 TO 20
        LOCATE j+20,5: PRINT Gesamtpunkte(j); "  "; Temp(j, 1); "  "
    NEXT


END SUB