mirror of
https://github.com/Deutscher-Tischfussballbund/com_sportsmanager.git
synced 2026-09-11 18:41:50 +00:00
Spielpunkte-Regel an eine Stelle: spielpunkteFuerSpiel() in tools.php
Vorarbeit fuer die STFV-Satzwertung (#304/#306-Konzept, Abschnitt 6): die Spielpunkte-Kaskade stand woertlich doppelt im PHP — einmal beim Speichern des Spielberichts (admin.php, Rechenweg A), einmal in begegnungenAktualisieren() (sportsmanager.php, Rechenweg B). Der Remis-Vorfall (35384a5,5d1df85) ist genau aus dieser Doppelung entstanden. Bevor eine vierte Wertung dazukommt, wird die Regel EINE Funktion: spielpunkteFuerSpiel(wertung, heim, gast) in tools.php, beide Wege rufen sie nur noch auf. Reine Umformung, keine Verhaltensaenderung; die dritte Rechenstelle (das erzeugte Formular-JavaScript) bleibt in diesem Schritt unangetastet. Gemessen, nicht nur begruendet — vorab wurden vier weitere Prueflige angelegt, damit ALLE Wertungen und Spielformen unter der Messlatte liegen (C = Sieg 3/ Remis 1, D = Sieg 1, E = Race mit 9:9-Abbruch, F = Mehrere mit Ergebnis je Satz samt Satz-Remis; dazu die bestehenden A = Gewinnsaetze, B = Einer sowie Damenbundesliga und Testliga). Ablauf identisch vor und nach der Umformung: alle zehn Modi unveraendert durchs Formular gespeichert (Rechenweg B ueber alle 116 Begegnungen), dazu zehn Begegnungen quer durch alle Ligen unveraendert durchs Spielbericht-Formular (Rechenweg A). Danach verglichen: - Datenbank-Dump (116 Begegnungen, 455 teamspiel-Zeilen, 32 Team-Zeilen, 138 bestenliste_punkte-Zeilen, 756 Zeilen gesamt): VOLLSTAENDIG identisch. - Frontend-Dump (8 Ligen je 3 Spieltagsansichten + 7 Spielerstatistiken, 30995 Zeilen HTML): VOLLSTAENDIG identisch.
This commit is contained in:
@@ -11262,51 +11262,9 @@ function adminSaveBegegnungSpielplan(): void
|
|||||||
$total_heim_punkte += $spiel_heim_punkte;
|
$total_heim_punkte += $spiel_heim_punkte;
|
||||||
$total_gast_punkte += $spiel_gast_punkte;
|
$total_gast_punkte += $spiel_gast_punkte;
|
||||||
|
|
||||||
if ($spieltyp[0] != "D") {
|
list($spiel_heim_spielpunkte, $spiel_gast_spielpunkte) = spielpunkteFuerSpiel(
|
||||||
if ($spielpunkte_wertung_einzel == 2) {
|
$spieltyp[0] != "D" ? $spielpunkte_wertung_einzel : $spielpunkte_wertung_doppel,
|
||||||
$spiel_heim_spielpunkte = $spiel_heim_punkte;
|
$spiel_heim_punkte, $spiel_gast_punkte);
|
||||||
$spiel_gast_spielpunkte = $spiel_gast_punkte;
|
|
||||||
} else {
|
|
||||||
if ($spiel_heim_punkte > $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spiel_heim_punkte < $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
|
|
||||||
} else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spielpunkte_wertung_einzel != 3) {
|
|
||||||
$spiel_heim_spielpunkte = 1;
|
|
||||||
$spiel_gast_spielpunkte = 1;
|
|
||||||
} else {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ($spielpunkte_wertung_doppel == 2) {
|
|
||||||
$spiel_heim_spielpunkte = $spiel_heim_punkte;
|
|
||||||
$spiel_gast_spielpunkte = $spiel_gast_punkte;
|
|
||||||
} else {
|
|
||||||
if ($spiel_heim_punkte > $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spiel_heim_punkte < $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
|
|
||||||
} else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spielpunkte_wertung_doppel != 3) {
|
|
||||||
$spiel_heim_spielpunkte = 1;
|
|
||||||
$spiel_gast_spielpunkte = 1;
|
|
||||||
} else {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_heim_spielpunkte += $spiel_heim_spielpunkte;
|
$total_heim_spielpunkte += $spiel_heim_spielpunkte;
|
||||||
$total_gast_spielpunkte += $spiel_gast_spielpunkte;
|
$total_gast_spielpunkte += $spiel_gast_spielpunkte;
|
||||||
|
|||||||
@@ -6169,51 +6169,10 @@ function begegnungenAktualisieren($geaendert_veranstaltung_id = 0, $geaendert_mo
|
|||||||
$spiel_heim_punkte = $spiel->teamspiel_heim_punkte;
|
$spiel_heim_punkte = $spiel->teamspiel_heim_punkte;
|
||||||
$spiel_gast_punkte = $spiel->teamspiel_gast_punkte;
|
$spiel_gast_punkte = $spiel->teamspiel_gast_punkte;
|
||||||
|
|
||||||
if ($spiel->heim_spieler_2_id === NULL && $spiel->gast_spieler_2_id === NULL) {
|
list($spiel_heim_spielpunkte, $spiel_gast_spielpunkte) = spielpunkteFuerSpiel(
|
||||||
if ($spielpunkte_wertung_einzel == 2) {
|
$spiel->heim_spieler_2_id === NULL && $spiel->gast_spieler_2_id === NULL
|
||||||
$spiel_heim_spielpunkte = $spiel_heim_punkte;
|
? $spielpunkte_wertung_einzel : $spielpunkte_wertung_doppel,
|
||||||
$spiel_gast_spielpunkte = $spiel_gast_punkte;
|
$spiel_heim_punkte, $spiel_gast_punkte);
|
||||||
} else {
|
|
||||||
if ($spiel_heim_punkte > $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spiel_heim_punkte < $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = $spielpunkte_wertung_einzel == 0 ? 2 : ($spielpunkte_wertung_einzel == 1 ? 3 : 1);
|
|
||||||
} else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spielpunkte_wertung_einzel != 3) {
|
|
||||||
$spiel_heim_spielpunkte = 1;
|
|
||||||
$spiel_gast_spielpunkte = 1;
|
|
||||||
} else {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ($spielpunkte_wertung_doppel == 2) {
|
|
||||||
$spiel_heim_spielpunkte = $spiel_heim_punkte;
|
|
||||||
$spiel_gast_spielpunkte = $spiel_gast_punkte;
|
|
||||||
} else {
|
|
||||||
if ($spiel_heim_punkte > $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spiel_heim_punkte < $spiel_gast_punkte) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = $spielpunkte_wertung_doppel == 0 ? 2 : ($spielpunkte_wertung_doppel == 1 ? 3 : 1);
|
|
||||||
} else if ($spiel_heim_punkte == 0 && $spiel_gast_punkte == 0) {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
} else if ($spielpunkte_wertung_doppel != 3) {
|
|
||||||
$spiel_heim_spielpunkte = 1;
|
|
||||||
$spiel_gast_spielpunkte = 1;
|
|
||||||
} else {
|
|
||||||
$spiel_heim_spielpunkte = 0;
|
|
||||||
$spiel_gast_spielpunkte = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_heim_spielpunkte += $spiel_heim_spielpunkte;
|
$total_heim_spielpunkte += $spiel_heim_spielpunkte;
|
||||||
$total_gast_spielpunkte += $spiel_gast_spielpunkte;
|
$total_gast_spielpunkte += $spiel_gast_spielpunkte;
|
||||||
|
|||||||
@@ -628,6 +628,20 @@ function runden_detailliert_auswertung($runden): array
|
|||||||
return array($ergebnis, $heim_saetze, $unentschieden_saetze, $gast_saetze, $heim_punkte, $gast_punkte);
|
return array($ergebnis, $heim_saetze, $unentschieden_saetze, $gast_saetze, $heim_punkte, $gast_punkte);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function spielpunkteFuerSpiel($wertung, $heim_punkte, $gast_punkte): array
|
||||||
|
{
|
||||||
|
if ($wertung == 2)
|
||||||
|
return array($heim_punkte, $gast_punkte);
|
||||||
|
$sieg = $wertung == 0 ? 2 : ($wertung == 1 ? 3 : 1);
|
||||||
|
if ($heim_punkte > $gast_punkte)
|
||||||
|
return array($sieg, 0);
|
||||||
|
if ($heim_punkte < $gast_punkte)
|
||||||
|
return array(0, $sieg);
|
||||||
|
if (($heim_punkte == 0 && $gast_punkte == 0) || $wertung == 3)
|
||||||
|
return array(0, 0);
|
||||||
|
return array(1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
// pass two file names
|
// pass two file names
|
||||||
// returns TRUE if files are the same, FALSE otherwise
|
// returns TRUE if files are the same, FALSE otherwise
|
||||||
function files_identical($fn1, $fn2): bool
|
function files_identical($fn1, $fn2): bool
|
||||||
|
|||||||
Reference in New Issue
Block a user