creation de la base de donne et l'affichage des score

This commit is contained in:
llample3
2026-02-19 20:21:47 +01:00
parent a32c41f369
commit 6b22b8530d
5 changed files with 140 additions and 2 deletions

View File

@@ -1,2 +1 @@
# Projet_Dev_Java
# Projet_Dev_Java

View File

@@ -0,0 +1,96 @@
package linea;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class GestionBDD {
private static final String URL = "jdbc:sqlite:score.db";
//connexion bdd
private static Connection connecter() throws SQLException {
return DriverManager.getConnection(URL);
}
//creation de la table score a ca premiere execution
public static void creerTableSiAbsente() {
String sql = """
CREATE TABLE IF NOT EXISTS scores (
id INTEGER PRIMARY KEY AUTOINCREMENT,
score INTEGER NOT NULL,
date TEXT NOT NULL
);
""";
try (Connection connexion = connecter();
Statement statement = connexion.createStatement()) {
statement.execute(sql);
} catch (SQLException e) {
e.printStackTrace();
}
}
// Ajouter un score a la fin de la partie
public static void ajouterScore(int score) {
String sql = "INSERT INTO scores(score, date) VALUES(?, ?)";
try (Connection connexion = connecter();
PreparedStatement requete = connexion.prepareStatement(sql)) {
requete.setInt(1, score);
requete.setString(2, java.time.LocalDate.now().toString());
requete.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
// Récupérer tous les scores
public static List<Integer> recupererTousLesScores() {
List<Integer> listeScores = new ArrayList<>();
String sql = "SELECT score FROM scores ORDER BY date DESC";
try (Connection connexion = connecter();
Statement statement = connexion.createStatement();
ResultSet resultat = statement.executeQuery(sql)) {
while (resultat.next()) {
listeScores.add(resultat.getInt("score"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return listeScores;
}
// Récupérer le meilleur score
public static int recupererMeilleurScore() {
String sql = "SELECT MAX(score) AS meilleur FROM scores";
try (Connection connexion = connecter();
Statement statement = connexion.createStatement();
ResultSet resultat = statement.executeQuery(sql)) {
if (resultat.next()) {
return resultat.getInt("meilleur");
}
} catch (SQLException e) {
e.printStackTrace();
}
return 0;
}
}

View File

@@ -130,6 +130,45 @@ public class Jeu implements KeyListener, ActionListener{
fenetre.setVisible(true);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 🔹 Création du bouton Voir Scores
javax.swing.JButton boutonScores = new javax.swing.JButton("Voir mes scores");
boutonScores.setBackground(Color.BLACK); // Couleur fond
boutonScores.setForeground(Color.WHITE); // Couleur texte
//boutonScores.setFont(new Font("Arial", Font.BOLD, 14)); // Police
// Position du bouton
boutonScores.setBounds(300, 20, 160, 30);
// Action quand on clique
boutonScores.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
java.util.List<Integer> scores = GestionBDD.recupererTousLesScores();
int meilleurScore = GestionBDD.recupererMeilleurScore();
StringBuilder message = new StringBuilder();
message.append("Meilleur score : ").append(meilleurScore).append("\n\n");
message.append("Tous les scores :\n");
for (int score : scores) {
message.append(score).append("\n");
}
javax.swing.JOptionPane.showMessageDialog(
fenetre,
message.toString(),
"Mes Scores",
javax.swing.JOptionPane.INFORMATION_MESSAGE
);
}
});
// affichier le bouton à l'écran
ecran.setLayout(null);
ecran.add(boutonScores);
// Démarrage du timer, qui rythmera l'animation
horloge = new Timer(40, this);
horloge.start();
@@ -166,6 +205,8 @@ public class Jeu implements KeyListener, ActionListener{
this.horloge.stop(); // 1. Arrêter le temps
this.ecran.partiePerdue = true; // 2. Signaler à l'écran
this.ecran.repaint(); // 3. Forcer l'affichage du texte
GestionBDD.ajouterScore((int)this.score);// enregistrement du score dans la base de donne
}
}
labScore.setText("<html><h3>score : " + this.score + "</h3></html>");

View File

@@ -7,6 +7,8 @@ public class LineaAppli {
//-------------------------------------------------------------------------
public static void main(String[] arg) {
GestionBDD.creerTableSiAbsente();
Jeu jeu = new Jeu();
jeu.demarrer();

BIN
score.db Normal file

Binary file not shown.