This commit is contained in:
lecointre
2026-04-03 16:56:08 +02:00
parent 14a3eb2803
commit 596a83a39b
4 changed files with 42 additions and 23 deletions
+28 -15
View File
@@ -1,6 +1,6 @@
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
public class ControleurMenu implements ActionListener {
@@ -11,26 +11,39 @@ public class ControleurMenu implements ActionListener {
this.menu = m;
}
@Override
@Override
public void actionPerformed(ActionEvent evenement) {
if (evenement.getSource() == this.menu.getBtnNouvellePartie()) {
try {
String strL = JOptionPane.showInputDialog(menu, "Nombre de lignes (entre 4 et 30) :");
if (strL == null) return;
int l = Integer.parseInt(strL);
String strC = JOptionPane.showInputDialog(menu, "Nombre de colonnes (entre 4 et 30) :");
if (strC == null) return;
int c = Integer.parseInt(strC);
String strM = JOptionPane.showInputDialog(menu, "Nombre total de mines :");
if (strM == null) return;
int m = Integer.parseInt(strM);
if (l < 4 || l > 30 || c < 4 || c > 30 || m >= (l * c)) {
JOptionPane.showMessageDialog(menu, "Valeurs incorrectes ! Les dimensions doivent être entre 4 et 30, et les mines inférieures au nombre de cases.");
return;
}
Grille nouvelleGrille = new Grille(l, c, m);
FenetreJeu fenetre = new FenetreJeu(nouvelleGrille);
fenetre.setVisible(true);
this.menu.dispose();
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(menu, "Erreur : Vous devez entrer des nombres entiers !");
}
System.out.println("Création d'une nouvelle partie...");
Grille nouvelleGrille = new Grille(10, 10, 10);
FenetreJeu fenetre = new FenetreJeu(nouvelleGrille);
fenetre.setVisible(true);
this.menu.dispose();
} else if (evenement.getSource() == this.menu.getBtnReprendre()) {
System.out.println("Chargement de la sauvegarde...");
} else if (evenement.getSource() == this.menu.getBtnQuitter()) {
System.out.println("Fermeture du jeu.");
System.exit(0);
}
}
+9 -5
View File
@@ -16,16 +16,20 @@ public class FenetreJeu extends JFrame {
this.setLayout(new BorderLayout());
JPanel panneauGrille = new JPanel();
panneauGrille.setLayout(new GridLayout(10, 10));
panneauGrille.setLayout(new GridLayout(g.getLignes(), g.getColonnes()));
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
for (int i = 0; i < g.getLignes(); i++) {
for (int j = 0; j < g.getColonnes(); j++) {
JButton boutonCase = new JButton("?");
panneauGrille.add(boutonCase);
}
}
this.add(panneauGrille, BorderLayout.CENTER);
JButton btnSauverQuitter = new JButton("Sauver et Quitter");
this.add(btnSauverQuitter, BorderLayout.SOUTH);
ControleurJeu controleur = new ControleurJeu(this);
btnSauverQuitter.addActionListener(controleur);
}
}
+3
View File
@@ -7,6 +7,9 @@ public class Grille implements Serializable {
private int colonnes;
private int mines;
public int getLignes() { return this.lignes; }
public int getColonnes() { return this.colonnes; }
public Grille(int l, int c, int m) {
this.lignes = l;
+2 -3
View File
@@ -3,15 +3,14 @@ JFLAGS = -implicit:none
all: MenuPrincipal.class Grille.class
Case.class: Case.java
$(JC) $(JFLAGS) Case.java
Grille.class: Grille.java Case.class
$(JC) $(JFLAGS) Grille.java
FenetreJeu.class: FenetreJeu.java Grille.class
$(JC) $(JFLAGS) FenetreJeu.java
FenetreJeu.class: FenetreJeu.java Grille.class ControleurJeu.java
$(JC) $(JFLAGS) FenetreJeu.java ControleurJeu.java
MenuPrincipal.class: MenuPrincipal.java ControleurMenu.java FenetreJeu.class
$(JC) $(JFLAGS) MenuPrincipal.java ControleurMenu.java