fb:porticula NoPaste
STOP
| Uploader: |  ALWIM | 
| 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
	
 Wer ist online?
 Wer ist online? Buchempfehlung
 Buchempfehlung
 FreeBASIC-Chat
 FreeBASIC-Chat
 FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!


