70 lines
2.4 KiB
Java
70 lines
2.4 KiB
Java
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import javax.swing.*;
|
|
|
|
/**
|
|
* Action déclenchée pour valider les paramètres et générer la grille de jeu.
|
|
* Vérifie que les entrées du joueur respectent les règles (entre 4 et 30 cases, etc.).
|
|
*/
|
|
public class ActionDemarrer implements ActionListener {
|
|
|
|
private JTextField champLignes;
|
|
private JTextField champColonnes;
|
|
private JTextField champMines;
|
|
private JFrame cible;
|
|
private Menu menuPrincipal;
|
|
|
|
/**
|
|
* Constructeur de l'action de démarrage.
|
|
* @param champL Le champ de texte contenant le nombre de lignes.
|
|
* @param champC Le champ de texte contenant le nombre de colonnes.
|
|
* @param champM Le champ de texte contenant le nombre de mines.
|
|
* @param cible La fenêtre de configuration à fermer.
|
|
* @param menu Le menu principal à fermer.
|
|
*/
|
|
public ActionDemarrer(JTextField champL, JTextField champC, JTextField champM, JFrame cible, Menu menu) {
|
|
this.champLignes = champL;
|
|
this.champColonnes = champC;
|
|
this.champMines = champM;
|
|
this.cible = cible;
|
|
this.menuPrincipal = menu;
|
|
}
|
|
|
|
/**
|
|
* Récupère les saisies, les valide et lance la fenêtre de jeu si tout est correct.
|
|
* @param e L'événement du clic.
|
|
*/
|
|
public void actionPerformed(ActionEvent e) {
|
|
String sLignes = champLignes.getText();
|
|
String sColonnes = champColonnes.getText();
|
|
String sMines = champMines.getText();
|
|
|
|
try {
|
|
int l = Integer.parseInt(sLignes);
|
|
int c = Integer.parseInt(sColonnes);
|
|
int m = Integer.parseInt(sMines);
|
|
|
|
if (l < 4 || l > 30 || c < 4 || c > 30) {
|
|
System.out.println("Erreur : Les dimensions doivent être comprises entre 4 et 30");
|
|
return;
|
|
}
|
|
if (m >= (l * c)) {
|
|
System.out.println("Erreur : Le nombre de mines doit être inférieur au nombre de cases !");
|
|
return;
|
|
}
|
|
|
|
Grille g = new Grille(l, c);
|
|
g.placerMines(m);
|
|
g.calculerToutesLesMines();
|
|
|
|
new FenetreJeu(g);
|
|
|
|
cible.dispose();
|
|
menuPrincipal.getFenetre().dispose();
|
|
|
|
} catch (NumberFormatException ex) {
|
|
System.out.println("Erreur : Veuillez entrer des nombres entiers valides");
|
|
}
|
|
}
|
|
}
|