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)
|
// Appliquer une couleur de barre (mettre en évidence le groupe du joueur en rouge, les autres en bleu)
|
||||||
if (i == highlightedGroup) {
|
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 {
|
} 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
|
// Ajouter des ombres à la barre pour un effet 3D
|
||||||
|
@@ -1,10 +1,13 @@
|
|||||||
package fr.monkhanny.dorfromantik.game;
|
package fr.monkhanny.dorfromantik.game;
|
||||||
|
|
||||||
|
import fr.monkhanny.dorfromantik.Main;
|
||||||
|
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
|
||||||
import fr.monkhanny.dorfromantik.Options;
|
import fr.monkhanny.dorfromantik.Options;
|
||||||
|
import fr.monkhanny.dorfromantik.gui.MainMenu;
|
||||||
|
|
||||||
public class MainMenuButtonListener implements ActionListener {
|
public class MainMenuButtonListener implements ActionListener {
|
||||||
private JFrame gameFrame;
|
private JFrame gameFrame;
|
||||||
@@ -19,14 +22,6 @@ public class MainMenuButtonListener implements ActionListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
// Fermer la fenêtre de pause
|
Main.resetGame();
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,7 @@ public class LeaderboardWorldWide extends Leaderboard {
|
|||||||
mainPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
|
mainPanel.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
|
||||||
|
|
||||||
// Titre
|
// 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.setForeground(new Color(76, 175, 80)); // Vert plus doux et moderne
|
||||||
titleLabel.setFont(new Font("Roboto", Font.BOLD, 32)); // Police moderne
|
titleLabel.setFont(new Font("Roboto", Font.BOLD, 32)); // Police moderne
|
||||||
titleLabel.setAlignmentX(CENTER_ALIGNMENT);
|
titleLabel.setAlignmentX(CENTER_ALIGNMENT);
|
||||||
@@ -57,17 +57,17 @@ public class LeaderboardWorldWide extends Leaderboard {
|
|||||||
// Ajout des trois premiers joueurs avec médailles
|
// Ajout des trois premiers joueurs avec médailles
|
||||||
gbc.gridx = 0;
|
gbc.gridx = 0;
|
||||||
gbc.weightx = 0.4;
|
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);
|
"./ressources/images/MainMenu/Leaderboard/2.png", false), gbc);
|
||||||
|
|
||||||
gbc.gridx = 1;
|
gbc.gridx = 1;
|
||||||
gbc.weightx = 0.5;
|
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);
|
"./ressources/images/MainMenu/Leaderboard/1.png", true), gbc);
|
||||||
|
|
||||||
gbc.gridx = 2;
|
gbc.gridx = 2;
|
||||||
gbc.weightx = 0.4;
|
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);
|
"./ressources/images/MainMenu/Leaderboard/3.png", false), gbc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ public class LeaderboardWorldWide extends Leaderboard {
|
|||||||
if (topPlayers != null) {
|
if (topPlayers != null) {
|
||||||
for (int i = 3; i < topPlayers.size(); i++) {
|
for (int i = 3; i < topPlayers.size(); i++) {
|
||||||
PlayerScore player = topPlayers.get(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,20 +75,52 @@ public class Database {
|
|||||||
|
|
||||||
public List<PlayerScore> getAllScores(long seriesId) throws SQLException {
|
public List<PlayerScore> getAllScores(long seriesId) throws SQLException {
|
||||||
List<PlayerScore> allScores = new ArrayList<>();
|
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)) {
|
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()) {
|
try (ResultSet rs = stmt.executeQuery()) {
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
int score = rs.getInt("score");
|
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;
|
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 {
|
public long getSeedByName(String name) throws SQLException {
|
||||||
String query = "SELECT series_id FROM Series WHERE name = " + "\'" + name + "\'" +";";
|
String query = "SELECT series_id FROM Series WHERE name = " + "\'" + name + "\'" +";";
|
||||||
long seed = -1; // Valeur par défaut si le seed n'est pas trouvé
|
long seed = -1; // Valeur par défaut si le seed n'est pas trouvé
|
||||||
@@ -147,16 +179,23 @@ public class Database {
|
|||||||
public List<PlayerScore> getTopPlayers() throws SQLException {
|
public List<PlayerScore> getTopPlayers() throws SQLException {
|
||||||
List<PlayerScore> topPlayers = new ArrayList<>();
|
List<PlayerScore> topPlayers = new ArrayList<>();
|
||||||
|
|
||||||
// Requête pour récupérer les scores et la date de soumission
|
// Requête pour récupérer les scores et le nom de la série, triée par score décroissant
|
||||||
String query = "SELECT score FROM Scores ORDER BY score DESC LIMIT 10";
|
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();
|
try (Statement stmt = this.database.createStatement();
|
||||||
ResultSet rs = stmt.executeQuery(query)) {
|
ResultSet rs = stmt.executeQuery(query)) {
|
||||||
|
|
||||||
while (rs.next()) {
|
while (rs.next()) {
|
||||||
int score = rs.getInt("score");
|
int score = rs.getInt("score");
|
||||||
// Créer un texte à afficher incluant le score et la date formatée
|
String seriesName = rs.getString("name"); // Nom de la série
|
||||||
String displayText = "";
|
|
||||||
topPlayers.add(new PlayerScore(displayText, score));
|
// 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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,6 +204,7 @@ public class Database {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupère les scores d'une série spécifique, triés en ordre décroissant (du plus élevé au plus bas)
|
* Récupère les scores d'une série spécifique, triés en ordre décroissant (du plus élevé au plus bas)
|
||||||
* @param seriesId L'ID de la série
|
* @param seriesId L'ID de la série
|
||||||
|
@@ -1,19 +1,19 @@
|
|||||||
package fr.monkhanny.dorfromantik.utils;
|
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 {
|
public class PlayerScore {
|
||||||
private String username;
|
private String serie;
|
||||||
private int score;
|
private int score;
|
||||||
|
|
||||||
public PlayerScore(String username, int score) {
|
public PlayerScore(String serie, int score) {
|
||||||
this.username = username;
|
this.serie = serie;
|
||||||
this.score = score;
|
this.score = score;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUsername() {
|
public String getSerieName() {
|
||||||
return username;
|
return serie;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getScore() {
|
public int getScore() {
|
||||||
|
Reference in New Issue
Block a user