spiel endet nicht wenn zwei leute maximale punktzahl haben

pull/46/head
eric 2025-08-12 02:42:56 +02:00
parent 5f176bab0f
commit b3eecfd10e
1 changed files with 17 additions and 16 deletions

View File

@ -194,22 +194,23 @@ private void broadcastRoundResult(String gameId) {
broadcastToAll(gameId, msg);
// Prüfe auf Gewinner
int score = 6; // Punktestand für den Gewinn
String winner = scores.entrySet().stream()
.filter(e -> e.getValue() >= score)
// Nur beenden, wenn EIN Spieler allein die höchste Punktzahl >= score hat
int score = 6;
int max = scores.values().stream().max(Integer::compareTo).orElse(0);
List<String> topScorers = scores.entrySet().stream()
.filter(e -> e.getValue() == max && max >= score)
.map(Map.Entry::getKey)
.findFirst()
.orElse(null);
if (winner != null) {
// Broadcast an alle, dass das Spiel vorbei ist
.toList();
if (topScorers.size() == 1) {
String winner = topScorers.get(0);
String winMsg = JsonUtil.toJson(Map.of(
"type", "game-end",
"winner", winner,
"scores", scores
));
broadcastToAll(gameId, winMsg);
game.scores().replaceAll((user , pts) -> 0); // Reset Scores für alle Spieler
game.scores().replaceAll((user , pts) -> 0); // Reset Scores
}
// else{
// // nächste Runde starten