diff --git a/src/fr/monkhanny/dorfromantik/game/BarChartPanel.java b/src/fr/monkhanny/dorfromantik/game/BarChartPanel.java index 146dff6..d47a4f1 100644 --- a/src/fr/monkhanny/dorfromantik/game/BarChartPanel.java +++ b/src/fr/monkhanny/dorfromantik/game/BarChartPanel.java @@ -34,9 +34,9 @@ protected void paintComponent(Graphics g) { // Appliquer une couleur de barre (mettre en évidence le groupe du joueur en rouge, les autres en bleu) if (i == highlightedGroup) { - g.setColor(new Color(255, 69, 0)); // Couleur rouge pour le groupe du joueur + g.setColor(new Color(204, 0, 0)); // Couleur rouge pour le groupe du joueur } else { - g.setColor(new Color(70, 130, 180)); // Bleu pour les autres groupes + g.setColor(new Color(0, 0, 204)); // Bleu pour les autres groupes } // Ajouter des ombres à la barre pour un effet 3D diff --git a/src/fr/monkhanny/dorfromantik/game/MainMenuButtonListener.java b/src/fr/monkhanny/dorfromantik/game/MainMenuButtonListener.java index eb95ac6..11e1a0d 100644 --- a/src/fr/monkhanny/dorfromantik/game/MainMenuButtonListener.java +++ b/src/fr/monkhanny/dorfromantik/game/MainMenuButtonListener.java @@ -1,10 +1,13 @@ package fr.monkhanny.dorfromantik.game; +import fr.monkhanny.dorfromantik.Main; + import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import fr.monkhanny.dorfromantik.Options; +import fr.monkhanny.dorfromantik.gui.MainMenu; public class MainMenuButtonListener implements ActionListener { private JFrame gameFrame; @@ -19,14 +22,6 @@ public class MainMenuButtonListener implements ActionListener { @Override public void actionPerformed(ActionEvent e) { - // Fermer la fenêtre de pause - if (escapeMenu != null) { - escapeMenu.setVisible(false); - } - - // Fermer la fenêtre de jeu et revenir au menu principal - gameFrame.setVisible(false); - Options.mainMenu.setVisible(true); - Options.isPaused = false; + Main.resetGame(); } } diff --git a/src/fr/monkhanny/dorfromantik/gui/LeaderboardWorldWide.java b/src/fr/monkhanny/dorfromantik/gui/LeaderboardWorldWide.java index 0788ac9..da53299 100644 --- a/src/fr/monkhanny/dorfromantik/gui/LeaderboardWorldWide.java +++ b/src/fr/monkhanny/dorfromantik/gui/LeaderboardWorldWide.java @@ -27,7 +27,7 @@ public class LeaderboardWorldWide extends Leaderboard { mainPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); // Titre - JLabel titleLabel = new JLabel("Classement mondial"); + JLabel titleLabel = new JLabel("Records par série"); titleLabel.setForeground(new Color(76, 175, 80)); // Vert plus doux et moderne titleLabel.setFont(new Font("Roboto", Font.BOLD, 32)); // Police moderne titleLabel.setAlignmentX(CENTER_ALIGNMENT); @@ -57,17 +57,17 @@ public class LeaderboardWorldWide extends Leaderboard { // Ajout des trois premiers joueurs avec médailles gbc.gridx = 0; gbc.weightx = 0.4; - topThreePanel.add(createTopPlayerPanel(topPlayers.get(1).getUsername(), topPlayers.get(1).getScore(), + topThreePanel.add(createTopPlayerPanel(topPlayers.get(1).getSerieName(), topPlayers.get(1).getScore(), "./ressources/images/MainMenu/Leaderboard/2.png", false), gbc); gbc.gridx = 1; gbc.weightx = 0.5; - topThreePanel.add(createTopPlayerPanel(topPlayers.get(0).getUsername(), topPlayers.get(0).getScore(), + topThreePanel.add(createTopPlayerPanel(topPlayers.get(0).getSerieName(), topPlayers.get(0).getScore(), "./ressources/images/MainMenu/Leaderboard/1.png", true), gbc); gbc.gridx = 2; gbc.weightx = 0.4; - topThreePanel.add(createTopPlayerPanel(topPlayers.get(2).getUsername(), topPlayers.get(2).getScore(), + topThreePanel.add(createTopPlayerPanel(topPlayers.get(2).getSerieName(), topPlayers.get(2).getScore(), "./ressources/images/MainMenu/Leaderboard/3.png", false), gbc); } @@ -80,7 +80,7 @@ public class LeaderboardWorldWide extends Leaderboard { if (topPlayers != null) { for (int i = 3; i < topPlayers.size(); i++) { PlayerScore player = topPlayers.get(i); - playersPanel.add(createPlayerPanel(player.getUsername(), player.getScore(), i + 1)); + playersPanel.add(createPlayerPanel(player.getSerieName(), player.getScore(), i + 1)); } } diff --git a/src/fr/monkhanny/dorfromantik/utils/Database.java b/src/fr/monkhanny/dorfromantik/utils/Database.java index 48cc6fd..db5f5b7 100644 --- a/src/fr/monkhanny/dorfromantik/utils/Database.java +++ b/src/fr/monkhanny/dorfromantik/utils/Database.java @@ -75,19 +75,51 @@ public class Database { public List getAllScores(long seriesId) throws SQLException { List allScores = new ArrayList<>(); - String query = "SELECT score FROM Scores WHERE series_id = ? ORDER BY score DESC"; + + // Requête pour récupérer les scores et le nom de la série + String query = "SELECT s.score, se.name " + + "FROM Scores s " + + "JOIN Series se ON s.series_id = se.series_id " + + "WHERE s.series_id = ? " + + "ORDER BY s.score DESC"; try (PreparedStatement stmt = this.database.prepareStatement(query)) { - stmt.setLong(1, seriesId); + stmt.setLong(1, seriesId); // Paramètre pour filtrer par series_id + try (ResultSet rs = stmt.executeQuery()) { while (rs.next()) { int score = rs.getInt("score"); - allScores.add(new PlayerScore("Joueur Anonyme", score)); // Nom générique + String seriesName = rs.getString("name"); // Nom de la série + + // Créer un texte à afficher incluant le score et le nom de la série + String displayText = "Score: " + score + " | Série: " + seriesName; + + // Ajouter l'objet PlayerScore à la liste avec un nom générique et le score + allScores.add(new PlayerScore(seriesName, score)); // Ajout du nom de la série } } } + return allScores; - } + } + + + public List getAllSeries() { + List series = new ArrayList<>(); + try { + String query = "SELECT name FROM series ORDER BY date_created DESC"; // Trier par date + Statement statement = this.database.createStatement(); + ResultSet resultSet = statement.executeQuery(query); + + while (resultSet.next()) { + series.add(resultSet.getString("name")); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return series; + } + public long getSeedByName(String name) throws SQLException { String query = "SELECT series_id FROM Series WHERE name = " + "\'" + name + "\'" +";"; @@ -147,21 +179,29 @@ public class Database { public List getTopPlayers() throws SQLException { List topPlayers = new ArrayList<>(); - // Requête pour récupérer les scores et la date de soumission - String query = "SELECT score FROM Scores ORDER BY score DESC LIMIT 10"; + // Requête pour récupérer les scores et le nom de la série, triée par score décroissant + String query = "SELECT s.score, se.name FROM Scores s " + + "JOIN Series se ON s.series_id = se.series_id " + + "ORDER BY s.score DESC LIMIT 10"; + try (Statement stmt = this.database.createStatement(); - ResultSet rs = stmt.executeQuery(query)) { + ResultSet rs = stmt.executeQuery(query)) { while (rs.next()) { int score = rs.getInt("score"); - // Créer un texte à afficher incluant le score et la date formatée - String displayText = ""; - topPlayers.add(new PlayerScore(displayText, score)); + String seriesName = rs.getString("name"); // Nom de la série + + // Créer un texte à afficher incluant le score et le nom de la série + String displayText = "Score: " + score + " | Série: " + seriesName; + + // Ajouter l'objet PlayerScore à la liste + topPlayers.add(new PlayerScore(seriesName, score)); // Assurez-vous que PlayerScore accepte un nom de série } } return topPlayers; } + diff --git a/src/fr/monkhanny/dorfromantik/utils/PlayerScore.java b/src/fr/monkhanny/dorfromantik/utils/PlayerScore.java index 2f156c6..b0f4d1f 100644 --- a/src/fr/monkhanny/dorfromantik/utils/PlayerScore.java +++ b/src/fr/monkhanny/dorfromantik/utils/PlayerScore.java @@ -1,19 +1,19 @@ package fr.monkhanny.dorfromantik.utils; /** - * Représente un score d'un joueur avec son nom et son score. + * Représente un score d'un joueur dans une série; */ public class PlayerScore { - private String username; + private String serie; private int score; - public PlayerScore(String username, int score) { - this.username = username; + public PlayerScore(String serie, int score) { + this.serie = serie; this.score = score; } - public String getUsername() { - return username; + public String getSerieName() { + return serie; } public int getScore() {