un peu de nettoyage

This commit is contained in:
Haïssous Kayyissa 2022-05-21 17:30:12 +02:00
parent 1b19ba171b
commit 903f85fb53
5 changed files with 43 additions and 34 deletions

View File

@ -50,15 +50,12 @@ public class Case extends JPanel {
} }
// S'il y a une mine et que c'est la première cliquée // S'il y a une mine et que c'est la première cliquée
else if ((this.minee)&&(this.grille.getEnJeu())) { else if ((this.minee)&&(this.grille.getEnJeu())) {
System.out.println("En jeu première mine avant boum:"+this.grille.getEnJeu());
this.grille.setEnJeu(false); 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.setBackground(new Color(200, 0, 0));
this.grille.setAllVisible(); this.grille.Defaite();
} }
// S'il y a une mine est que la partie est finie // S'il y a une mine est que la partie est finie
else if ((this.minee)&&(!this.grille.getEnJeu())) { 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)); this.setBackground(new Color(236, 0, 140));
// Sinon le nombre de mines autour d'elle // Sinon le nombre de mines autour d'elle

View File

@ -2,18 +2,18 @@ import javax.swing.*;
import java.awt.*; 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...) // 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) { 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 // 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(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// On crée ensuite notre fenêtre // On crée ensuite notre fenêtre
JFrame fenetre = new JFrame("Démineur - En Jeu"); this.setTitle("Démineur - En Jeu");
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Mise en page // Mise en page
fenetre.setLayout(new GridBagLayout()); this.setLayout(new GridBagLayout());
GridBagConstraints miseEnPage = new GridBagConstraints(); GridBagConstraints miseEnPage = new GridBagConstraints();
// Création de la grille de Jeu // Création de la grille de Jeu
@ -30,7 +30,7 @@ public class FrameJeu{
miseEnPage.gridy = 0; miseEnPage.gridy = 0;
miseEnPage.weightx =1; miseEnPage.weightx =1;
miseEnPage.weighty = 0.15; miseEnPage.weighty = 0.15;
fenetre.add(banniere, miseEnPage); this.add(banniere, miseEnPage);
// Mise en place de la grille // Mise en place de la grille
@ -39,14 +39,14 @@ public class FrameJeu{
miseEnPage.weightx =1; miseEnPage.weightx =1;
miseEnPage.weighty = 0.85; miseEnPage.weighty = 0.85;
miseEnPage.fill = GridBagConstraints.BOTH; miseEnPage.fill = GridBagConstraints.BOTH;
fenetre.add(grille, miseEnPage); this.add(grille, miseEnPage);
// Mise en place de la fenêtre et affichage // Mise en place de la fenêtre et affichage
fenetre.pack(); this.pack();
Dimension grilleSize= grille.getGrilleSize(); Dimension grilleSize= grille.getGrilleSize();
fenetre.setSize(grilleSize.width,grilleSize.height*9/8); this.setSize(grilleSize.width,grilleSize.height*9/8);
Dimension fenetreSize=fenetre.getSize(); Dimension fenetreSize=this.getSize();
fenetre.setLocation(screenSize.width/2-(fenetreSize.width/2), screenSize.height/2-(fenetreSize.height/2)); this.setLocation(screenSize.width/2-(fenetreSize.width/2), screenSize.height/2-(fenetreSize.height/2));
fenetre.setVisible(true); this.setVisible(true);
} }
} }

View File

@ -1,9 +1,9 @@
import javax.swing.*; import javax.swing.*;
import java.awt.event.*;
import java.awt.*; 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...) // 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 lignes;
private int colonnes; private int colonnes;
private int mines; private int mines;
@ -16,19 +16,19 @@ public class FrameMenu{
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// On crée ensuite notre fenêtre // On crée ensuite notre fenêtre
JFrame fenetre = new JFrame("Démineur - Menu"); this.setTitle("Démineur - Menu");
fenetre.setSize(screenSize.width * 3/5,screenSize.height * 2/3); this.setSize(screenSize.width * 3/5,screenSize.height * 2/3);
fenetre.setLocation(screenSize.width * 1/5, screenSize.height * 1/6); this.setLocation(screenSize.width * 1/5, screenSize.height * 1/6);
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setLayout(null); this.setLayout(null);
fenetre.setLayout(new GridBagLayout()); this.setLayout(new GridBagLayout());
GridBagConstraints miseEnPage = new GridBagConstraints(); GridBagConstraints miseEnPage = new GridBagConstraints();
// On créer les zones de textes de saisie // On créer les zones de textes de saisie
this.sliderLignes = new JSlider(4,30); this.sliderLignes = new JSlider(4,30);
this.sliderColonnes = 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)); sliderLignes.addChangeListener(new SettingsListener(0,this));
sliderColonnes.addChangeListener(new SettingsListener(1,this)); sliderColonnes.addChangeListener(new SettingsListener(1,this));
@ -38,17 +38,26 @@ public class FrameMenu{
this.colonnes=sliderColonnes.getValue(); this.colonnes=sliderColonnes.getValue();
this.mines=sliderMines.getValue(); this.mines=sliderMines.getValue();
fenetre.add(sliderLignes); this.add(sliderLignes);
fenetre.add(sliderColonnes); this.add(sliderColonnes);
fenetre.add(sliderMines); this.add(sliderMines);
JButton newGame = new JButton("New Game"); JButton newGame = new JButton("New Game");
newGame.addActionListener(new NewGameListener(this)); newGame.addActionListener(new NewGameListener(this));
fenetre.add(newGame); this.add(newGame);
// A faire : bouton jouer, charger et quitter JButton exit = new JButton("Quitter");
fenetre.setVisible(true); 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 // Méthode pour récupérer les valeurs des paramètres
@ -61,7 +70,6 @@ public class FrameMenu{
this.mines=settingValue; this.mines=settingValue;
} }
this.sliderMines.setMaximum(this.colonnes*this.lignes); 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 // Methode pour connaître les paramètres de la partie

View File

@ -152,11 +152,13 @@ public class Grille extends JPanel {
} }
} }
// Méthode pour montrer toutes les cases à la fin de la partie // Méthode montrer la défaite
public void setAllVisible(){ public void Defaite(){
// Montre toutes les cases du plateau
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
this.plateau[i].setVisible(); this.plateau[i].setVisible();
} }
System.out.println("Défaite !");
} }
// Méthode pour obtenir la taille de la grille de jeu // Méthode pour obtenir la taille de la grille de jeu
@ -177,13 +179,14 @@ public class Grille extends JPanel {
// Méthode déterminant les conditions de victoire // Méthode déterminant les conditions de victoire
public void verifVictoire(){ public void verifVictoire(){
// Compte le nombre de cases visibles
int casesVisibles=0; int casesVisibles=0;
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
if(plateau[i].getVisible()==true){ if(plateau[i].getVisible()==true){
casesVisibles+=1; casesVisibles+=1;
} }
} }
// Lance la victoire si les conditions sont remplies // Lance la victoire si toutes les cases non minées sont révélées
if (taille-mines==casesVisibles){ if (taille-mines==casesVisibles){
for (int i=0;i<taille;i++){ for (int i=0;i<taille;i++){
this.plateau[i].setVictoire(); this.plateau[i].setVictoire();

View File

@ -7,5 +7,6 @@ public class NewGameListener implements ActionListener{
public void actionPerformed(ActionEvent event){ public void actionPerformed(ActionEvent event){
int[] settings =this.menu.getSettings(); int[] settings =this.menu.getSettings();
new FrameJeu(settings[0], settings[1], settings[2]); new FrameJeu(settings[0], settings[1], settings[2]);
this.menu.setVisible(false);
} }
} }