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,9 @@
<component name="libraryTable">
<library name="sqlite-jdbc-3.45.1.0">
<CLASSES>
<root url="jar://$USER_HOME$/Downloads/sqlite-jdbc-3.45.1.0.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@@ -7,5 +7,6 @@
</content> </content>
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="sqlite-jdbc-3.45.1.0" level="project" />
</component> </component>
</module> </module>

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

View File

@@ -47,7 +47,12 @@ public class MenuPrincipal {
boutonClassement.addActionListener(new ActionListener() { boutonClassement.addActionListener(new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { 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);
} }
}); });