spiel endet nicht wenn zwei leute maximale punktzahl haben
parent
5f176bab0f
commit
b3eecfd10e
|
|
@ -194,23 +194,24 @@ private void broadcastRoundResult(String gameId) {
|
||||||
broadcastToAll(gameId, msg);
|
broadcastToAll(gameId, msg);
|
||||||
|
|
||||||
// Prüfe auf Gewinner
|
// Prüfe auf Gewinner
|
||||||
int score = 6; // Punktestand für den Gewinn
|
// Nur beenden, wenn EIN Spieler allein die höchste Punktzahl >= score hat
|
||||||
String winner = scores.entrySet().stream()
|
int score = 6;
|
||||||
.filter(e -> e.getValue() >= score)
|
int max = scores.values().stream().max(Integer::compareTo).orElse(0);
|
||||||
.map(Map.Entry::getKey)
|
List<String> topScorers = scores.entrySet().stream()
|
||||||
.findFirst()
|
.filter(e -> e.getValue() == max && max >= score)
|
||||||
.orElse(null);
|
.map(Map.Entry::getKey)
|
||||||
if (winner != null) {
|
.toList();
|
||||||
// Broadcast an alle, dass das Spiel vorbei ist
|
|
||||||
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
|
|
||||||
|
|
||||||
}
|
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
|
||||||
|
}
|
||||||
// else{
|
// else{
|
||||||
// // nächste Runde starten
|
// // nächste Runde starten
|
||||||
// // ...
|
// // ...
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue