Modifications
This commit is contained in:
@@ -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
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -75,19 +75,51 @@ public class Database {
|
||||
|
||||
public List<PlayerScore> getAllScores(long seriesId) throws SQLException {
|
||||
List<PlayerScore> 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<String> getAllSeries() {
|
||||
List<String> 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<PlayerScore> getTopPlayers() throws SQLException {
|
||||
List<PlayerScore> 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -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() {
|
||||
|
Reference in New Issue
Block a user