diff --git a/Case.java b/Case.java index 196c652..f5f351e 100644 --- a/Case.java +++ b/Case.java @@ -50,15 +50,12 @@ public class Case extends JPanel { } // S'il y a une mine et que c'est la première cliquée else if ((this.minee)&&(this.grille.getEnJeu())) { - System.out.println("En jeu première mine avant boum:"+this.grille.getEnJeu()); this.grille.setEnJeu(false); - System.out.println("En jeu première mine après boum:"+this.grille.getEnJeu()); this.setBackground(new Color(200, 0, 0)); - this.grille.setAllVisible(); + this.grille.Defaite(); } // S'il y a une mine est que la partie est finie else if ((this.minee)&&(!this.grille.getEnJeu())) { - System.out.println("Fin de partie autres mines:"+this.grille.getEnJeu()); this.setBackground(new Color(236, 0, 140)); // Sinon le nombre de mines autour d'elle diff --git a/FrameJeu.java b/FrameJeu.java index 4f373a0..f2ade32 100644 --- a/FrameJeu.java +++ b/FrameJeu.java @@ -2,18 +2,18 @@ import javax.swing.*; import java.awt.*; // Cette classe à pour but d'afficher un menu et de réagir aux directives de l'utilisateur (lancer le jeu, le quitter...) -public class FrameJeu{ +public class FrameJeu extends JFrame{ public FrameJeu(int lignes, int colonnes, int mines) { // On récupère les dimensions de l'écran pour adapter la taille par défaut de notre fenêtre Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // On crée ensuite notre fenêtre - JFrame fenetre = new JFrame("Démineur - En Jeu"); - fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setTitle("Démineur - En Jeu"); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Mise en page - fenetre.setLayout(new GridBagLayout()); + this.setLayout(new GridBagLayout()); GridBagConstraints miseEnPage = new GridBagConstraints(); // Création de la grille de Jeu @@ -30,7 +30,7 @@ public class FrameJeu{ miseEnPage.gridy = 0; miseEnPage.weightx =1; miseEnPage.weighty = 0.15; - fenetre.add(banniere, miseEnPage); + this.add(banniere, miseEnPage); // Mise en place de la grille @@ -39,14 +39,14 @@ public class FrameJeu{ miseEnPage.weightx =1; miseEnPage.weighty = 0.85; miseEnPage.fill = GridBagConstraints.BOTH; - fenetre.add(grille, miseEnPage); + this.add(grille, miseEnPage); // Mise en place de la fenêtre et affichage - fenetre.pack(); + this.pack(); Dimension grilleSize= grille.getGrilleSize(); - fenetre.setSize(grilleSize.width,grilleSize.height*9/8); - Dimension fenetreSize=fenetre.getSize(); - fenetre.setLocation(screenSize.width/2-(fenetreSize.width/2), screenSize.height/2-(fenetreSize.height/2)); - fenetre.setVisible(true); + this.setSize(grilleSize.width,grilleSize.height*9/8); + Dimension fenetreSize=this.getSize(); + this.setLocation(screenSize.width/2-(fenetreSize.width/2), screenSize.height/2-(fenetreSize.height/2)); + this.setVisible(true); } } \ No newline at end of file diff --git a/FrameMenu.java b/FrameMenu.java index feaf45c..89dd24d 100644 --- a/FrameMenu.java +++ b/FrameMenu.java @@ -1,9 +1,9 @@ import javax.swing.*; - +import java.awt.event.*; import java.awt.*; // Cette classe à pour but d'afficher un menu et de réagir aux directives de l'utilisateur (lancer le jeu, le quitter...) -public class FrameMenu{ +public class FrameMenu extends JFrame{ private int lignes; private int colonnes; private int mines; @@ -16,19 +16,19 @@ public class FrameMenu{ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); // On crée ensuite notre fenêtre - JFrame fenetre = new JFrame("Démineur - Menu"); - fenetre.setSize(screenSize.width * 3/5,screenSize.height * 2/3); - fenetre.setLocation(screenSize.width * 1/5, screenSize.height * 1/6); - fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - fenetre.setLayout(null); - fenetre.setLayout(new GridBagLayout()); + this.setTitle("Démineur - Menu"); + this.setSize(screenSize.width * 3/5,screenSize.height * 2/3); + this.setLocation(screenSize.width * 1/5, screenSize.height * 1/6); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setLayout(null); + this.setLayout(new GridBagLayout()); GridBagConstraints miseEnPage = new GridBagConstraints(); // On créer les zones de textes de saisie this.sliderLignes = new JSlider(4,30); this.sliderColonnes = new JSlider(4,30); - this.sliderMines = new JSlider(0,900, 16); + this.sliderMines = new JSlider(1,900, 16); sliderLignes.addChangeListener(new SettingsListener(0,this)); sliderColonnes.addChangeListener(new SettingsListener(1,this)); @@ -38,17 +38,26 @@ public class FrameMenu{ this.colonnes=sliderColonnes.getValue(); this.mines=sliderMines.getValue(); - fenetre.add(sliderLignes); - fenetre.add(sliderColonnes); - fenetre.add(sliderMines); + this.add(sliderLignes); + this.add(sliderColonnes); + this.add(sliderMines); JButton newGame = new JButton("New Game"); newGame.addActionListener(new NewGameListener(this)); - fenetre.add(newGame); + this.add(newGame); - // A faire : bouton jouer, charger et quitter - fenetre.setVisible(true); + JButton exit = new JButton("Quitter"); + exit.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e) { + System.exit(0); + } + }); + + this.add(exit); + + // A faire : Bouton charger + this.setVisible(true); } // Méthode pour récupérer les valeurs des paramètres @@ -61,7 +70,6 @@ public class FrameMenu{ this.mines=settingValue; } this.sliderMines.setMaximum(this.colonnes*this.lignes); - System.out.println("Lignes : "+this.lignes+" Colonnes : "+this.colonnes+" Mines : "+this.mines); } // Methode pour connaître les paramètres de la partie diff --git a/Grille.java b/Grille.java index 2cbac8e..d49489d 100644 --- a/Grille.java +++ b/Grille.java @@ -152,11 +152,13 @@ public class Grille extends JPanel { } } - // Méthode pour montrer toutes les cases à la fin de la partie - public void setAllVisible(){ + // Méthode montrer la défaite + public void Defaite(){ + // Montre toutes les cases du plateau for (int i=0;i