diff --git a/backend/src/tools/schocken/routes.js b/backend/src/tools/schocken/routes.js index d291be4..313a43d 100644 --- a/backend/src/tools/schocken/routes.js +++ b/backend/src/tools/schocken/routes.js @@ -74,8 +74,8 @@ function compareResults(a, b) { // Gleicher Typ — Detailvergleich if (a.result.type === 'normal') { - // Niedrigere Summe ist schlechter — aber beide haben immer 1 Scheibe, kein Unterschied im Typ - // Tatsächlich keine Hierarchie bei normalen Würfen außer Scheiben=1 + // Niedrigere Augensumme = schlechter + if (a.result.value !== b.result.value) return a.result.value < b.result.value ? -1 : 1; return 0; } if (a.result.type === 'strasse') { @@ -345,14 +345,16 @@ router.post('/:id/evaluate', authenticate, (req, res) => { results.sort((a, b) => { const cmp = compareResults(a, b); if (cmp !== 0) return cmp; // -1 wenn a schlechter - // Gleicher Typ: mehr Würfe = schlechter - if (a.rolls !== b.rolls) return b.rolls - a.rolls; // mehr Würfe = schlechter (hinten) - // Nachleger: später in Reihenfolge = schlechter - return activePlayers.indexOf(b.player) - activePlayers.indexOf(a.player); + // Gleicher Typ: mehr Würfe = schlechter (vorne in der Liste = Index 0 = Verlierer) + if (a.rolls !== b.rolls) return a.rolls - b.rolls; // mehr Würfe = schlechter (vorne) + // Nachleger: später in Reihenfolge = schlechter (vorne) + return activePlayers.indexOf(a.player) - activePlayers.indexOf(b.player); }); - const loser = results[0]; // schlechtestes Ergebnis - const scheiben = loser.result.scheiben; + const loser = results[0]; // schlechtestes Ergebnis (Index 0 nach sort) + const winner = results[results.length - 1]; // bestes Ergebnis + // Scheiben die verteilt werden = Wert des BESTEN Ergebnisses der Runde + const scheiben = winner.result.scheiben; // Scheiben verteilen let fromStock = 0;