base sql qui ne fonction pas encore

This commit is contained in:
B00M360
2026-03-04 14:58:03 +01:00
parent 89bf27ab94
commit 029fcc3b74
5 changed files with 77 additions and 1 deletions

View File

@@ -0,0 +1,51 @@
package linea;
import java.sql.*;
public class GestionnaireScore {
private String url = "jdbc:sqlite:linea_scores.db";
public GestionnaireScore() {
// Au démarrage, on crée la table si elle n'existe pas
try (Connection conn = DriverManager.getConnection(url)) {
String sql = "CREATE TABLE IF NOT EXISTS scores (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"nom TEXT," +
"points INTEGER);";
Statement stmt = conn.createStatement();
stmt.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void sauvegarderScore(String nom, int points) {
String sql = "INSERT INTO scores(nom, points) VALUES(?, ?)";
try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, nom);
pstmt.setInt(2, points);
pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public String getTopScores() {
StringBuilder sb = new StringBuilder("--- TOP 10 SCORES ---\n");
String sql = "SELECT nom, points FROM scores ORDER BY points DESC LIMIT 10";
try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
sb.append(rs.getString("nom")).append(" : ")
.append(rs.getInt("points")).append("\n");
}
} catch (SQLException e) {
return "Erreur lors de la lecture des scores.";
}
return sb.toString();
}
}

View File

@@ -30,6 +30,8 @@ public class Jeu implements KeyListener, ActionListener, MouseListener {
protected JLabel labScore;
protected int vies = 3;
protected GestionnaireScore gestionnaireBDD = new GestionnaireScore();
protected int compteurFrames = 0;
protected boolean enCollision = false;
protected boolean estGameOver = false;
@@ -40,6 +42,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener {
protected JFrame fenetre;
protected MenuPrincipal menu;
public Jeu() {
labScore = new JLabel();
labScore.setForeground(Color.WHITE);
@@ -165,6 +168,10 @@ public class Jeu implements KeyListener, ActionListener, MouseListener {
estGameOver = true;
ecran.arreter();
labGameOver.setVisible(true);
if (pseudo != null && !pseudo.isEmpty()) {
gestionnaireBDD.sauvegarderScore(pseudo, (int) score);
}
}
labScore.setText("<html><h3>Score : " + (int) score + " | Vies : " + vies + "</h3></html>");
@@ -211,4 +218,7 @@ public class Jeu implements KeyListener, ActionListener, MouseListener {
@Override
public void mouseExited(MouseEvent e) {
}
public GestionnaireScore getGestionnaireBDD() {
return gestionnaireBDD;
}
}

View File

@@ -47,7 +47,12 @@ public class MenuPrincipal {
boutonClassement.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(fenetre, "TOP SCORES", "Classement", JOptionPane.INFORMATION_MESSAGE);
// 1. On récupère les scores depuis la BDD via l'objet 'jeu'
String scores = jeu.getGestionnaireBDD().getTopScores();
// 2. On affiche le résultat dans la petite fenêtre popup
JOptionPane.showMessageDialog(fenetre, scores, "Meilleurs Scores", JOptionPane.INFORMATION_MESSAGE);
}
});