feat: good leaderboard

This commit is contained in:
2025-02-01 00:09:25 +01:00
parent a160042ef4
commit a5c046f891
6 changed files with 74 additions and 11 deletions

View File

@@ -1,6 +1,9 @@
package game;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import sudoku.structure.MultiDoku;
@@ -12,11 +15,13 @@ public class Game {
}
private final Map<Integer, Player> players;
private final List<Player> leaderboard;
private GameState gameState;
private MultiDoku doku;
public Game() {
this.players = new HashMap<>();
this.leaderboard = new ArrayList<>();
this.gameState = GameState.GameNotStarted;
}
@@ -26,10 +31,18 @@ public class Game {
public void addPlayer(Player player) {
players.put(player.getId(), player);
leaderboard.add(player);
}
public void setPlayerScore(Player player, int newScore) {
player.setScore(newScore);
Collections.sort(this.leaderboard,
(player1, player2) -> Integer.compare(player1.getScore(), player2.getScore()));
}
public void removePlayer(int id) {
players.remove(id);
this.leaderboard.remove(getPlayerById(id));
this.players.remove(id);
}
public Map<Integer, Player> getPlayers() {
@@ -49,4 +62,8 @@ public class Game {
return doku;
}
public List<Player> getLeaderboard() {
return leaderboard;
}
}