base sql qui ne fonction pas encore
This commit is contained in:
9
.idea/libraries/sqlite_jdbc_3_45_1_0.xml
generated
Normal file
9
.idea/libraries/sqlite_jdbc_3_45_1_0.xml
generated
Normal 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>
|
||||||
@@ -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>
|
||||||
51
src/GestionnaireScore.java
Normal file
51
src/GestionnaireScore.java
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
||||||
10
src/Jeu.java
10
src/Jeu.java
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user