spiel endet nicht wenn zwei leute maximale punktzahl haben
parent
5f176bab0f
commit
b3eecfd10e
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue