diff --git a/projet_linea/Niveaux.db b/projet_linea/Niveaux.db
index 38c8221..909dd82 100644
Binary files a/projet_linea/Niveaux.db and b/projet_linea/Niveaux.db differ
diff --git a/projet_linea/bin/CadreDeConnexion.class b/projet_linea/bin/CadreDeConnexion.class
index 61efa2f..b8af445 100644
Binary files a/projet_linea/bin/CadreDeConnexion.class and b/projet_linea/bin/CadreDeConnexion.class differ
diff --git a/projet_linea/bin/Cercle.class b/projet_linea/bin/Cercle.class
index bfdf302..9899856 100644
Binary files a/projet_linea/bin/Cercle.class and b/projet_linea/bin/Cercle.class differ
diff --git a/projet_linea/bin/Jeu.class b/projet_linea/bin/Jeu.class
index 7590d7a..64be96d 100644
Binary files a/projet_linea/bin/Jeu.class and b/projet_linea/bin/Jeu.class differ
diff --git a/projet_linea/bin/Ligne.class b/projet_linea/bin/Ligne.class
index e8f88fd..5eaa11e 100644
Binary files a/projet_linea/bin/Ligne.class and b/projet_linea/bin/Ligne.class differ
diff --git a/projet_linea/bin/MenuPrincipal.class b/projet_linea/bin/MenuPrincipal.class
new file mode 100644
index 0000000..2bee24a
Binary files /dev/null and b/projet_linea/bin/MenuPrincipal.class differ
diff --git a/projet_linea/bin/NiveauxDataConnect.class b/projet_linea/bin/NiveauxDataConnect.class
index b36948e..b76b836 100644
Binary files a/projet_linea/bin/NiveauxDataConnect.class and b/projet_linea/bin/NiveauxDataConnect.class differ
diff --git a/projet_linea/bin/Segment.class b/projet_linea/bin/Segment.class
index 4a55c2a..d0718db 100644
Binary files a/projet_linea/bin/Segment.class and b/projet_linea/bin/Segment.class differ
diff --git a/projet_linea/bin/images/icone.png b/projet_linea/bin/images/icone.png
new file mode 100644
index 0000000..d728eca
Binary files /dev/null and b/projet_linea/bin/images/icone.png differ
diff --git a/projet_linea/src/CadreDeConnexion.java b/projet_linea/src/CadreDeConnexion.java
index 501567c..2f0f505 100644
--- a/projet_linea/src/CadreDeConnexion.java
+++ b/projet_linea/src/CadreDeConnexion.java
@@ -1,24 +1,58 @@
import java.awt.*;
+import java.net.URL;
+import javax.imageio.ImageIO;
import javax.swing.*;
public class CadreDeConnexion extends JFrame {
+
+
+ //--------------------------------------------------------------------------
+ // Méthode peremttant de charger(récupérer) l'image îcone depuis Ressources
+ // -------------------------------------------------------------------------
+ private Image chargerImageDepuisRessource(String cheminRessource) {
+ // Cette méthode doit seulement charger l'image, pas rappeler elle-même.
+ try {
+ URL url = getClass().getResource(cheminRessource);
+ if (url != null) {
+ return ImageIO.read(url);
+ }
+ System.err.println("Ressource introuvable : " + cheminRessource);
+ } catch (Exception e) {
+ System.err.println("Erreur chargement image : " + e.getMessage());
+ }
+ return null;
+ }
public CadreDeConnexion() {
- // 1. Configuration de base
- setTitle("Connexion Linea");
+
+ // Image de fond de la page de connexion
+ Background panelBackground = null;
+
+ // 1. On change l'icône de CETTE fenêtre (this)
+ Image imageConnexion = chargerImageDepuisRessource("/images/icone.png");
+ if (imageConnexion != null) {
+ // On applique la même image comme icône de la fenêtre
+ this.setIconImage(imageConnexion);
+ // On prépare aussi le fond pour le panneau de connexion
+ panelBackground = new Background(imageConnexion);
+ }
+
+ // 2. Configuration de base
+ setTitle("ZENITH FLUX");
setSize(800, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null); // Centre la fenêtre
- // 2. Style du panneau principal (noir )
- JPanel panel = new JPanel(new GridBagLayout());
- panel.setBackground(new Color(30, 30, 30));
- add(panel);
+ // 2. Style du panneau principal (Gris foncé)
+ // On utilise ZoneDessin pour pouvoir dessiner l'image en fond
+ JPanel panel = new ZoneDessin(panelBackground);
+ panel.setLayout(new GridBagLayout());
+ setContentPane(panel);
// Conteneur pour les éléments (pour les empiler verticalement)
Box box = Box.createVerticalBox();
- // 3. Création des composants
+ // 4. Création des composants
JLabel titre = new JLabel("CONNEXION");
titre.setForeground(Color.WHITE);
titre.setFont(new Font("Arial", Font.BOLD, 24));
@@ -32,7 +66,7 @@ public class CadreDeConnexion extends JFrame {
JButton loginBtn = BoutonsManager.creerBoutonConnexion(userField, passField, this);
- // 4. Ajout des composants avec des espaces (Struts)
+ // 5. Ajout des composants avec des espaces (Struts)
box.add(titre);
box.add(Box.createVerticalStrut(30)); // Espace
box.add(new JLabel("Utilisateur :"));
@@ -49,6 +83,92 @@ public class CadreDeConnexion extends JFrame {
panel.add(box); // Ajoute la boîte au centre du GridBagLayout
+ // 5. Logique du bouton
+ loginBtn.addActionListener(e -> {
+ String user = userField.getText();
+ String pass = new String(passField.getPassword());
+ int userId = GestionBDD.verifierConnexion(user, pass);
+
+ if (userId != -1) {
+ dispose();
+ Jeu jeu = new Jeu(userId);
+ jeu.demarrer();
+ } else {
+ JOptionPane.showMessageDialog(this, "Acces refuse");
+ }
+ });
+
+ createBtn.addActionListener(evt -> {
+ JFrame createFrame = new JFrame("Creation de compte");
+ createFrame.setSize(800, 600);
+ createFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ createFrame.setLocationRelativeTo(null);
+
+ // On recharge la même image pour la fenêtre de création de compte
+ // afin de lui donner à la fois l'icône et le fond d'écran.
+ Background panelBackgroundCreation = null;
+ Image imageCreation = chargerImageDepuisRessource("/images/icone.png");
+ if (imageCreation != null) {
+ createFrame.setIconImage(imageCreation);
+ panelBackgroundCreation = new Background(imageCreation);
+ }
+
+ // Même principe que pour la page de connexion : le fond est dessiné par ZoneDessin
+ JPanel createPanel = new ZoneDessin(panelBackgroundCreation);
+ createPanel.setLayout(new GridBagLayout());
+ createFrame.setContentPane(createPanel);
+
+ Box createBox = Box.createVerticalBox();
+
+ JLabel createTitre = new JLabel("CREATION DE COMPTE");
+ createTitre.setForeground(Color.WHITE);
+ createTitre.setFont(new Font("Arial", Font.BOLD, 24));
+ createTitre.setAlignmentX(Component.CENTER_ALIGNMENT);
+
+ JTextField newUserField = new JTextField(15);
+ newUserField.setMaximumSize(new Dimension(250, 30));
+
+ JPasswordField newPassField = new JPasswordField(15);
+ newPassField.setMaximumSize(new Dimension(250, 30));
+
+ JButton createAccountBtn = new JButton("Créer");
+ createAccountBtn.setBackground(new Color(70, 130, 180));
+ createAccountBtn.setForeground(Color.WHITE);
+ createAccountBtn.setFocusPainted(false);
+ createAccountBtn.setAlignmentX(Component.CENTER_ALIGNMENT);
+
+ createBox.add(createTitre);
+ createBox.add(Box.createVerticalStrut(30));
+ createBox.add(new JLabel("Nouvel utilisateur :"));
+ createBox.add(newUserField);
+ createBox.add(Box.createVerticalStrut(15));
+ createBox.add(new JLabel("Mot de passe :"));
+ createBox.add(newPassField);
+ createBox.add(Box.createVerticalStrut(30));
+ createBox.add(createAccountBtn);
+
+ createPanel.add(createBox);
+
+ createAccountBtn.addActionListener(e -> {
+ String u = newUserField.getText().trim();
+ String p = new String(newPassField.getPassword());
+ if (u.isEmpty() || p.isEmpty()) {
+ JOptionPane.showMessageDialog(createFrame, "Utilisateur et mot de passe requis");
+ return;
+ }
+
+ boolean ok = GestionBDD.creerUtilisateur(u, p);
+ if (ok) {
+ JOptionPane.showMessageDialog(createFrame, "Compte cree avec succes.");
+ createFrame.dispose();
+ } else {
+ JOptionPane.showMessageDialog(createFrame, "Échec : le nom d'utilisateur existe deja ou erreur.");
+ }
+ });
+
+ createFrame.setVisible(true);
+ });
+
setVisible(true);
}
}
diff --git a/projet_linea/src/Cercle.java b/projet_linea/src/Cercle.java
index 2d45f36..fd5e8bd 100644
--- a/projet_linea/src/Cercle.java
+++ b/projet_linea/src/Cercle.java
@@ -10,7 +10,8 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
//-------------------------------------------------------------------------
// PROPRIETES
- //-------------------------------------------------------------------------
+ //-------------------------------------------------------------------------
+ private double gravite = 10.0;
protected double rayon = 30;
protected double depY = 0; // déplacement
@@ -77,6 +78,12 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
return y;
}
+ //-------------------------------------------------------------------------
+ // Méthode pour mettre à jour la gravité du cercle depuis la classe
+ //-------------------------------------------------------------------------
+ public void setGravite(double nouvelleGravite) {
+ this.gravite = nouvelleGravite;
+ }
//-------------------------------------------------------------------------
// Méthode qui note que up a été appuyée
// -> le booléen permet de ne plus être tributaire
@@ -118,17 +125,15 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
void Animer() {
// pas est à prendre comme un "delta t"
- if (!modeTriche) {
- // chute libre
- vitesse = vitesse + 9.81 * pas;
- }
+ // chute libre
+ vitesse = vitesse + gravite * pas;
// impulsion (toujours appliquée, même en triche ?)
if (montee==true) {
vitesse = vitesse - impulsion *pas;
}
- depY = 1/2 * 9.81 + vitesse * pas;
+ depY = 1/2 * gravite + vitesse * pas;
if (depY<-10) {
depY=-10;
@@ -144,7 +149,7 @@ public class Cercle extends ObjetGraphique{ // il s'agit plutôt d'arcs de cercl
// Méthode pour mettre un plafond et un sol au cercle
public void verification_cercle_out(){
if(y < plafond || (y + rayon) >= sol ) {
- vitesse = -vitesse;
+ vitesse =-vitesse;
}
}
diff --git a/projet_linea/src/Jeu.java b/projet_linea/src/Jeu.java
index b5a2e0c..9780be2 100644
--- a/projet_linea/src/Jeu.java
+++ b/projet_linea/src/Jeu.java
@@ -14,7 +14,7 @@ public class Jeu implements KeyListener, ActionListener{
//-------------------------------------------------------------------------
// Ecran : instance de ZoneDessin, qui contiendra tous les objets graphiques
- // On ne vapas créer directement l'écran car ça va créer un flash
+ // On ne va pas créer directement l'écran car ça va créer un flash
// Dès le lancement du jeu avec l'image de fond par défaut et l'imga du niveau
// et les animera
protected ZoneDessin ecran;
@@ -96,13 +96,14 @@ public class Jeu implements KeyListener, ActionListener{
if( n1 != null ){
try {
- // On charge l'mage du niveau 1
+ // On charge l'image du niveau 1
java.net.URL url = Jeu.class.getResource("/" + n1.getImage());
if(url != null){
java.awt.Image img = javax.imageio.ImageIO.read(url);
premierFond = new Background(img);
}
} catch (Exception e) {
+ e.printStackTrace();
}
}
@@ -268,6 +269,18 @@ public class Jeu implements KeyListener, ActionListener{
this.dernierSegmentValide = null;
this.ecran.partiePerdue = false;
+ // Formule : Gravité de base - (Niveau * incrément)
+ // Niveau 1 : 10.0 + (1 * 1.50) = 8.5 (poids normal)
+ // Niveau 4 : 10.0 + (4 * 1.50) = 4.0 (Très léger et plane)
+ double graviteNiveau = 10.0 - (this.niveauEnCours.getId() * 1.5);
+ // Sécurité: La gravité du niveau ne doit pas descendre en dessous de 2
+ // Sinon le cercle ne retomberait plus jamais
+ if(graviteNiveau < 2.0){
+ graviteNiveau = 2.0;
+ }
+ this.demiCercleAvant.setGravite(graviteNiveau);
+ this.demiCercleArriere.setGravite(graviteNiveau);
+
// On corse le jeu avec son ID
//On applique les paramètres aux options de jeu
@@ -302,7 +315,7 @@ public class Jeu implements KeyListener, ActionListener{
// Petite pause avec un message
horloge.stop();
- JOptionPane.showMessageDialog(fenetre, "Niveau terminé ! Préparez-vous pour le niveau suivant ;)");
+ JOptionPane.showMessageDialog(fenetre, "Niveau terminé ! Préparez-vous pour le niveau suivant 😉 OU PERDEZ 😈");
chargerNiveau(idNiveauActuel);
horloge.start();
@@ -323,11 +336,14 @@ public class Jeu implements KeyListener, ActionListener{
itemCourant.y = this.laLigne.getYSurLigne(itemCourant.x) - 40;
}
- // Mode triche : centrer le cercle sur le milieu du segment courant
+ // Mode triche : Le cercle suit la ligne
+ // On utilisera le calcul pour déterminer si la ligne traverse le cercle
if (modeTriche && this.laLigne.getSegCourant() != null) {
- double milieuY = this.laLigne.getSegCourant().getMilieuY();
- this.demiCercleAvant.y = milieuY;
- this.demiCercleArriere.y = milieuY;
+ // double yPoint = this.getSegCourant().y + (this.SegCourant.yLong / this.SegCourant.xLong) * (this.xCercle - this.SegCourant.x);
+ double yPointTricheArrire = this.laLigne.getSegCourant().getY() + (this.laLigne.getSegCourant().getYLong() / this.laLigne.getSegCourant().getXLong()) * (this.demiCercleArriere.getX() - this.laLigne.getSegCourant().getX());
+ double yPointTricheAvant = this.laLigne.getSegCourant().getY() + (this.laLigne.getSegCourant().getYLong() / this.laLigne.getSegCourant().getXLong()) * (this.demiCercleAvant.getX() - this.laLigne.getSegCourant().getX());
+ this.demiCercleAvant.y = yPointTricheArrire ;
+ this.demiCercleArriere.y = yPointTricheAvant;
}
if (itemCourant.estTouche(demiCercleAvant)) {
diff --git a/projet_linea/src/Ligne.java b/projet_linea/src/Ligne.java
index 78c8f8e..e4545ce 100644
--- a/projet_linea/src/Ligne.java
+++ b/projet_linea/src/Ligne.java
@@ -173,6 +173,7 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique
}
return dansCercle;
}
+
public Segment getSegCourant() {
return this.SegCourant;
}
diff --git a/projet_linea/src/MenuPrincipal.java b/projet_linea/src/MenuPrincipal.java
new file mode 100644
index 0000000..73a9cb5
--- /dev/null
+++ b/projet_linea/src/MenuPrincipal.java
@@ -0,0 +1,113 @@
+import javax.swing.*;
+import java.awt.*;
+
+// ★★★ CLASSE CREEE PAR L'UTILISATEUR ★★★
+// Fichier : MenuPrincipal.java (nouveau fichier)
+// Objectif : afficher un menu d'accueil APRES la connexion réussie
+// Remplace : l'ancien démarrage direct du jeu après connexion
+// Fonctionnalités : 2 boutons (Lancer le jeu / Voir mes scores)
+
+// Fenêtre du menu principal affichée après la connexion
+public class MenuPrincipal extends JFrame {
+
+ // ID de l'utilisateur connecté
+ private final int utilisateurId;
+
+ // Constructeur du menu principal
+ // Affiche un écran d'accueil avec deux options : "Lancer le jeu" et "Voir mes scores"
+ // ★★★ CONSTRUCTEUR CREE PAR L'UTILISATEUR ★★★
+ // Nouveau : il n'existait pas avant, crée le menu principal
+ public MenuPrincipal(int utilisateurId, String userName) {
+ // Sauvegarde l'ID pour l'utiliser lors des appels à la base de données
+ this.utilisateurId = utilisateurId;
+
+ // Configuration de la fenêtre
+ setTitle("Menu Principal - Linea"); // Titre de la fenêtre
+ setSize(800, 600); // Dimensions de la fenêtre
+ setDefaultCloseOperation(EXIT_ON_CLOSE); // Quitter l'app à la fermeture
+ setLocationRelativeTo(null); // Centre la fenêtre
+
+ // Crée le panneau principal avec un fond sombre
+ JPanel panel = new JPanel(new GridBagLayout()); // GridBagLayout pour centrage
+ panel.setBackground(new Color(30, 30, 30)); // Fond gris très foncé
+ add(panel);
+
+ // Crée une boîte verticale pour disposer les éléments de haut en bas
+ Box box = Box.createVerticalBox(); // Disposition verticale
+ box.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
+
+ // Crée un titre de bienvenue personalisé avec le nom de l'utilisateur
+ JLabel titre = new JLabel("Bienvenue, " + userName + " !");
+ titre.setForeground(Color.WHITE); // Texte blanc
+ titre.setFont(new Font("Arial", Font.BOLD, 26)); // Police Arial gras 26pt
+ titre.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré
+
+ // Crée le bouton "Lancer le jeu" pour démarrer une partie
+ JButton demarrer = new JButton("Lancer le jeu");
+ demarrer.setBackground(new Color(70, 130, 180)); // Couleur bleu acier
+ demarrer.setForeground(Color.WHITE); // Texte blanc
+ demarrer.setFocusPainted(false); // Pas de bordure au focus
+ demarrer.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
+ demarrer.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
+
+
+ // Au clic, ferme ce menu et lance le jeu
+ // ★★★ ACTION MODIFIEE PAR L'UTILISATEUR ★★★
+ // Lance le jeu APRES fermeture du menu (ajout du menu principal)
+ demarrer.addActionListener(e -> {
+ // Ferme la fenêtre de menu
+ dispose();
+ // Crée une instance du jeu avec l'ID utilisateur (authentifié)
+ Jeu jeu = new Jeu(utilisateurId);
+ // Démarre l'affichage et l'initialisation du jeu
+ jeu.demarrer();
+ });
+
+ // Crée le bouton "Voir mes scores" pour afficher l'historique
+ // ★★★ NOUVEAU BOUTON PAR L'UTILISATEUR ★★★
+ // Nouvelle fonctionnalité : permet de voir les scores AVANT de lancer le jeu
+ // Utilise les méthodes : GestionBDD.recupererScoresUtilisateur()
+ // GestionBDD.recupererMeilleurScoreUtilisateur()
+ JButton scores = new JButton("Voir mes scores");
+ scores.setBackground(new Color(70, 130, 180)); // Couleur bleu acier (même que demarrer)
+ scores.setForeground(Color.WHITE); // Texte blanc
+ scores.setFocusPainted(false); // Pas de bordure au focus
+ scores.setMaximumSize(new Dimension(220, 40)); // Dimension du bouton
+ scores.setAlignmentX(Component.CENTER_ALIGNMENT); // Centré horizontalement
+
+
+ // Au clic, récupère et affiche les scores depuis la base de données
+ // ★★★ ACTION PAR L'UTILISATEUR ★★★
+ // Nouvelle action : afficher les scores historiques du joueur dans une popup
+ // Récupère : tous les scores + le meilleur score
+ scores.addActionListener(e -> {
+ // Récupère la liste de tous les scores de l'utilisateur depuis la BD
+ java.util.List scoreList = GestionBDD.recupererScoresUtilisateur(utilisateurId);
+ // Récupère aussi le meilleur score (score maximum) depuis la BD
+ int meilleurScore = GestionBDD.recupererMeilleurScoreUtilisateur(utilisateurId);
+
+ // Construit un message texte avec tous les scores à afficher
+ StringBuilder message = new StringBuilder();
+ message.append("Meilleur score : ").append(meilleurScore).append("\n\n");
+ message.append("Tous les scores :\n");
+
+ // Ajoute chaque score à la liste, un par un
+ for (int s : scoreList) {
+ message.append(s).append("\n");
+ }
+
+ // Affiche les scores dans une boîte de dialogue popup
+ JOptionPane.showMessageDialog(this, message.toString(), "Mes Scores", JOptionPane.INFORMATION_MESSAGE);
+ });
+
+ // Ajoute tous les éléments dans la boîte
+ box.add(titre);
+ box.add(Box.createVerticalStrut(40)); // Espace de 40 pixels après le titre
+ box.add(demarrer);
+ box.add(Box.createVerticalStrut(15)); // Espace de 15 pixels entre les deux boutons
+ box.add(scores);
+
+ // Ajoute la boîte au panneau principal
+ panel.add(box);
+ }
+}
diff --git a/projet_linea/src/NiveauxDataConnect.java b/projet_linea/src/NiveauxDataConnect.java
index c00ea93..b549612 100644
--- a/projet_linea/src/NiveauxDataConnect.java
+++ b/projet_linea/src/NiveauxDataConnect.java
@@ -124,24 +124,24 @@ public class NiveauxDataConnect {
// le jeu est lancé
// Pour corser le jeu, on utilisera l'id du niveau qui nous servira de difficulté
// --------------------------------Niveau 1 --------------------------------
- // nom = "Facile", vitesse_ligne = 5, nb_segments = 50, image = "images\ciel.jpeg", multiplicateur_score = 1, couleur_cercle = "bleu"
+ // nom = "Facile", vitesse_ligne = 5, nb_segments = 50, image = "images\ciel.jpeg", multiplicateur_score = 10, couleur_cercle = "bleu"
// --------------------------------Niveau 2 --------------------------------
- // nom = "intermédaire", vitesse_ligne = 7, nb_segments = 100, image = "images\montagnes.jpg", multiplicateur_score = 2, couleur_cercle = "gris"
+ // nom = "intermédaire", vitesse_ligne = 7, nb_segments = 100, image = "images\montagnes.jpg", multiplicateur_score = 20, couleur_cercle = "gris"
// --------------------------------Niveau 3 --------------------------------
- // nom = "Difficile", vitesse_ligne = 9, nb_segments = 100, image = "images\volcan.jpg", multiplicateur_score = 3, couleur_cercle = "marron"
+ // nom = "Difficile", vitesse_ligne = 9, nb_segments = 100, image = "images\volcan.jpg", multiplicateur_score = 30, couleur_cercle = "marron"
// --------------------------------Niveau 4 --------------------------------
- // nom = "Ultime", vitesse_ligne = 10, nb_segments = 150, image = "images\espace.jpg", multiplicateur_score = 4, couleur_cercle = "violet"
+ // nom = "Ultime", vitesse_ligne = 10, nb_segments = 150, image = "images\espace.jpg", multiplicateur_score = 50, couleur_cercle = "violet"
// -------------------------------------------------------------------------
public static void insererNiveau(Connection conn) {
String query1 = "INSERT INTO niveau(nom, vitesse_ligne, nb_segments, image, multiplicateur_score, couleur_cercle) "
- + "VALUES('Facile', 5, 50, 'images/ciel.jpeg', 1, '#0000FF');";
+ + "VALUES('Facile', 5, 50, 'images/ciel.jpeg', 10, '#0000FF');";
String query2 = "INSERT INTO niveau(nom, vitesse_ligne, nb_segments, image, multiplicateur_score, couleur_cercle) "
- + "VALUES('Intermédiaire', 7, 100, 'images/montagnes.jpg', 2, '#808080');";
+ + "VALUES('Intermédiaire', 7, 100, 'images/montagnes.jpg', 20, '#808080');";
String query3 = "INSERT INTO niveau(nom, vitesse_ligne, nb_segments, image, multiplicateur_score, couleur_cercle) "
- + "VALUES('Difficile', 9, 100, 'images/volcan.jpg', 3, '#8B4513');";
+ + "VALUES('Difficile', 9, 100, 'images/volcan.jpg', 30, '#8B4513');";
String query4 = "INSERT INTO niveau(nom, vitesse_ligne, nb_segments, image, multiplicateur_score, couleur_cercle) "
- + "VALUES('Ultime', 10, 150, 'images/espace.jpg', 4, '#9400D3');";
+ + "VALUES('Ultime', 10, 150, 'images/espace.jpg', 50, '#9400D3');";
try (Statement stmt = conn.createStatement()) {
stmt.execute(query1);
diff --git a/projet_linea/src/Segment.java b/projet_linea/src/Segment.java
index 60374da..59dbb0d 100644
--- a/projet_linea/src/Segment.java
+++ b/projet_linea/src/Segment.java
@@ -32,6 +32,14 @@ public class Segment extends ObjetGraphique { // Hérite de la classe ObjetGraph
yLong = yyLong;
}
+ public double getYLong(){
+ return this.yLong;
+ }
+
+ public double getXLong(){
+ return this.xLong;
+ }
+
// Méthode pour obtenir la position Y au milieu du segment
public double getMilieuY() {
return y + yLong / 2;
diff --git a/projet_linea/src/ZoneDessin.class b/projet_linea/src/ZoneDessin.class
deleted file mode 100644
index 3a893aa..0000000
Binary files a/projet_linea/src/ZoneDessin.class and /dev/null differ
diff --git a/projet_linea/src/images/icone.png b/projet_linea/src/images/icone.png
new file mode 100644
index 0000000..d728eca
Binary files /dev/null and b/projet_linea/src/images/icone.png differ