From 43cc3c1145f05fcc5fcc970769949ed123a89d69 Mon Sep 17 00:00:00 2001 From: lecointre Date: Tue, 7 Apr 2026 19:34:25 +0200 Subject: [PATCH] je sais plus si j'avais push donc pour etre sur --- ControleurGrille.java | 62 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 ControleurGrille.java diff --git a/ControleurGrille.java b/ControleurGrille.java new file mode 100644 index 0000000..23e4147 --- /dev/null +++ b/ControleurGrille.java @@ -0,0 +1,62 @@ +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import javax.swing.JOptionPane; + +public class ControleurGrille implements MouseListener { + + private FenetreJeu fenetre; + private Grille grille; + + public ControleurGrille(FenetreJeu f, Grille g) { + this.fenetre = f; + this.grille = g; + } + + @Override + public void mouseClicked(MouseEvent e) { + if (this.grille.isPartieTerminee()) return; + + for (int i = 0; i < grille.getLignes(); i++) { + for (int j = 0; j < grille.getColonnes(); j++) { + + if (e.getSource() == fenetre.getBouton(i, j)) { + Case caseCliquee = grille.getCase(i, j); + + if (caseCliquee.isRevelee()) return; + + if (e.getButton() == MouseEvent.BUTTON1) { + if (caseCliquee.getMarqueur() != 1) { + boolean aExplose = grille.revelerCase(i, j); + if (aExplose) { + grille.setPartieTerminee(true); + fenetre.afficherDefaite(i, j); + JOptionPane.showMessageDialog(fenetre, "BOUM ! Vous avez sauté sur une mine !"); + // NOUVEAU : On ne quitte plus de force, on change juste le bouton + fenetre.changerBoutonEnRetourMenu(); + } else { + fenetre.rafraichirTouteLaGrille(); + if (grille.estGagnee()) { + grille.setPartieTerminee(true); + JOptionPane.showMessageDialog(fenetre, "Félicitations ! Vous avez trouvé toutes les mines !"); + // NOUVEAU : Idem pour la victoire + fenetre.changerBoutonEnRetourMenu(); + } + } + } + } + else if (e.getButton() == MouseEvent.BUTTON3) { + caseCliquee.changerMarqueur(); + fenetre.rafraichirCase(i, j); + fenetre.mettreAJourCompteur(); + } + return; + } + } + } + } + + public void mousePressed(MouseEvent e) {} + public void mouseReleased(MouseEvent e) {} + public void mouseEntered(MouseEvent e) {} + public void mouseExited(MouseEvent e) {} +}