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