5
0
mirror of https://github.com/AJMicke/KickerELO.git synced 2026-03-11 13:31:02 +01:00

Clear up 1 vs 1 calculation formula

This commit is contained in:
Anton Micke
2025-04-11 20:28:18 +02:00
committed by AJMicke
parent e596cdd9c4
commit 509297cc82

View File

@@ -21,13 +21,13 @@ public class EloCalculationService {
public void updateElo1vs1(Spieler gewinner, Spieler verlierer, short toreVerlierer) {
final float baseK = 50;
final float reductionPerGoal = 0.1f * baseK;
final float finalK = baseK - (reductionPerGoal * toreVerlierer);
float expectedScoreWinner = (float) (1 / (1 + Math.pow(10, (verlierer.getElo1vs1() - gewinner.getElo1vs1()) / 400)));
float expectedScoreLoser = (float) (1 / (1 + Math.pow(10, (gewinner.getElo1vs1() - verlierer.getElo1vs1()) / 400)));
gewinner.setElo1vs1(gewinner.getElo1vs1() + finalK * (1-expectedScoreWinner));
verlierer.setElo1vs1(verlierer.getElo1vs1() - finalK * expectedScoreLoser);
double x = Math.pow(10, (verlierer.getElo1vs1() - gewinner.getElo1vs1()) / 400);
float eloChange = (float) (finalK * x / (x + 1));
gewinner.setElo1vs1(gewinner.getElo1vs1() + eloChange);
verlierer.setElo1vs1(verlierer.getElo1vs1() - eloChange);
}
/**