Kleine Fehler
13.06.2024 11:36
bei mir auch. dann wohl bei allen.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Louis Lavendel am 13.06.2024 11:36.
14.06.2024 07:27 - Re: Zu viele gelbe Karten
Zitat:
Original von kijan
Mein Spieler Enrique Maisah hat in drei Spielen schon vier gelbe Karten geschafft und ist nun von einer Sperre bedroht. Ist nicht so wild, aber da stimmt definitiv etwas nicht.


Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von catch am 14.06.2024 07:30.
14.06.2024 09:41
Also wenn ich bei mir in die Saisonstatistik schaue
1 Spieler 4 gelbe Karten
2 Spieler 2 gelbe Karten, wo von nur einer verwarnt wurde
1 Spieler mit 2 roten Karten
14.06.2024 10:34
Auch bei mir jetzt gelber Wahnsinn. Santamaria schon mit 4 gelben Karten nach 2 Spielen.
14.06.2024 10:46
Vll ist das eine neue Regel von der wir nix Wissen :D Daran vll mal gedacht? :P
14.06.2024 12:27
Bei Rot ab jetzt neue Staffelung: 5-25 statt 1-5 Spiele Sperre ^^

Und kein Abseits mehr!

Für die Dauer der EM xD
14.06.2024 18:15
Fehler, der zur doppelten Zählung in der Statistik führte, wurde per Hotfix behoben.
Die Statistik selbst wird im Laufe des Abends korrigiert.
15.06.2024 00:47 - Re:
Zitat:
Original von Rizzen
Fehler, der zur doppelten Zählung in der Statistik führte, wurde per Hotfix behoben.
Die Statistik selbst wird im Laufe des Abends korrigiert.

Primar. Vielen Dank. Was war die Ursache?
15.06.2024 12:28 - Re: Re:
Zitat:
Original von Lanathir
Primar. Vielen Dank. Was war die Ursache?

Innerhalb der Spielberechnung wird jedes auftretende Spielereignis als Objekt angelegt, welches zu einem späteren Zeitpunkt auf ein nicht-assoziatives Array gepusht wird. Um die Spielerstatistiken nach dem Spiel zu aktualisieren, werden alle Elemente dieses Arrays ausgewertet.
"Bedeutungslose" Ereignisse wie z.B. harmlose Fouls oder "Ball landet im Seitenaus" werden verworfen und landen gar nicht erst auf diesem Array - werden somit auch für die Spielerstatistiken nicht ausgewertet.
Während ich den Fehler der doppelten Karten gefixt hatte, habe ich alle Code-Stellen, in welchen eine Karte gezeigt werden konnte endlich mal in eine einzelne neue Methode refaktoriert, welche auch direkt diesen Push auf das Array vornimmt.
Und anschließend noch einen manuellen Push hinzugefügt für den Fall, dass es keine Karte gab.
Allerdings habe ich die Code-Stelle einige Zeilen weiter unten, an denen hier bereits IMMER auf das Array gepusht wurde, nicht entfernt.

Ergebnis: Das Spielereignis-Objekt für die Karte lag zwei mal auf dem Array. Die Karten wurden korrekt nur einmal in der Datenbank gespeichert, da es sich um das selbe Objekt handelt - das Array wird für die Statistik-Berechnung aber bloß in einer simplen For-Schleife durchlaufen. Daher wurde die Anzahl der Karten zwei mal erhöht.

Und wenn ich in meinem "Fix" gestern nun auch korrekterweise das allgemeine Hinzufügen zum Array herausgelöscht hätte anstatt den neu hinzugefügten, korrekten Else-Case, wäre das extrem cool gewesen...

An dieser Stelle übrigens ein dickes Dankeschön für genau diese Nachfrage:
Ohne die Nachfrage hätte ich gerade nicht noch einmal im Code nachgeschaut, um sicherzugehen, dass meine Beschreibung auch korrekt ist - und meinen Fauxpas vermutlich erst deutlich später bemerkt (mit den nächsten Meldungen zu noch immer doppelt gezählten Karten).

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Rizzen am 15.06.2024 12:33.
15.06.2024 16:38 - Re: Re: Re:
Zitat:
Original von Rizzen
Zitat:
Original von Lanathir
Primar. Vielen Dank. Was war die Ursache?

Innerhalb der Spielberechnung wird jedes auftretende Spielereignis als Objekt angelegt, welches zu einem späteren Zeitpunkt auf ein nicht-assoziatives Array gepusht wird. Um die Spielerstatistiken nach dem Spiel zu aktualisieren, werden alle Elemente dieses Arrays ausgewertet.
"Bedeutungslose" Ereignisse wie z.B. harmlose Fouls oder "Ball landet im Seitenaus" werden verworfen und landen gar nicht erst auf diesem Array - werden somit auch für die Spielerstatistiken nicht ausgewertet.
Während ich den Fehler der doppelten Karten gefixt hatte, habe ich alle Code-Stellen, in welchen eine Karte gezeigt werden konnte endlich mal in eine einzelne neue Methode refaktoriert, welche auch direkt diesen Push auf das Array vornimmt.
Und anschließend noch einen manuellen Push hinzugefügt für den Fall, dass es keine Karte gab.
Allerdings habe ich die Code-Stelle einige Zeilen weiter unten, an denen hier bereits IMMER auf das Array gepusht wurde, nicht entfernt.

Ergebnis: Das Spielereignis-Objekt für die Karte lag zwei mal auf dem Array. Die Karten wurden korrekt nur einmal in der Datenbank gespeichert, da es sich um das selbe Objekt handelt - das Array wird für die Statistik-Berechnung aber bloß in einer simplen For-Schleife durchlaufen. Daher wurde die Anzahl der Karten zwei mal erhöht.

Und wenn ich in meinem "Fix" gestern nun auch korrekterweise das allgemeine Hinzufügen zum Array herausgelöscht hätte anstatt den neu hinzugefügten, korrekten Else-Case, wäre das extrem cool gewesen...

An dieser Stelle übrigens ein dickes Dankeschön für genau diese Nachfrage:
Ohne die Nachfrage hätte ich gerade nicht noch einmal im Code nachgeschaut, um sicherzugehen, dass meine Beschreibung auch korrekt ist - und meinen Fauxpas vermutlich erst deutlich später bemerkt (mit den nächsten Meldungen zu noch immer doppelt gezählten Karten).

Bitte und Danke für die extrem ausführliche Erklärung. Ich weiß nicht, ob es sowas in Deiner Programmierprache gibt, aber es gibt Datenstrukturen wie z.B. java.util.Set
https://docs.oracle.com/javase%2F8%2Fdocs%2Fapi%2F%2F/java/util/Set.html
die Duplikate ignorieren. Nur so eine Ideeund wäre ein doppelter Boden.