avancée fin

This commit is contained in:
Haïssous Kayyissa 2022-05-17 11:11:29 +02:00
parent 528870aeff
commit fb6417c44a
6 changed files with 26 additions and 24 deletions

View File

@ -8,7 +8,6 @@ public class Case extends JPanel {
private boolean visible;
private boolean minee;
private boolean reperee;
private ListenerCase listener;
private boolean finDePartie;
// Définition du constructeur
@ -18,11 +17,10 @@ public class Case extends JPanel {
this.visible=false;
this.reperee=false;
this.grille=grille;
this.finDePartie=false;
//this.finDePartie=false;
// On place un listener sur notre case pour qu'elle réagisse aux clicks du joueur
this.listener = new ListenerCase();
this.addMouseListener(this.listener);
this.addMouseListener(new ListenerCase());
// Mise en page de la case et couleur par défaut
this.setSize(caseSize);
@ -39,9 +37,12 @@ public class Case extends JPanel {
// On affiche une mine si la case est minée, sinon le nombre de mines autour d'elle
if ((this.minee)&&(!this.finDePartie)) {
this.removeAll();
System.out.println(this.finDePartie);
this.setBackground(new Color(200, 0, 0));
this.grille.setAllVisible();
this.finDePartie=true;
this.grille.setAllVisible();
System.out.println(this.finDePartie);
}
else if ((this.minee)&&(this.finDePartie)) {
this.setBackground(new Color(236, 0, 140));

View File

@ -8,12 +8,7 @@ public class EtatPartie extends JPanel {
// On défini un style à la bannière
this.setBackground( new Color(0, 236, 96));
this.setSize(200,100);
// On ajoute le compteur de mines restantes
setMinesLeft(mines);
}
}
// Méthode pour afficher le nombre de mines restantes
public void setMinesLeft(int minesLeft){

View File

@ -16,17 +16,16 @@ public class FrameJeu{
fenetre.setLayout(new GridBagLayout());
GridBagConstraints miseEnPage = new GridBagConstraints();
// Création de la bannière
EtatPartie banniere = new EtatPartie(mines);
// Création de la grille de Jeu
Grille grille=new Grille(banniere,lignes,colonnes,mines);
Grille grille=new Grille(lignes,colonnes,mines);
// Récupération de la bannière
EtatPartie banniere = grille.getBanniere();
// Mise en place de la bannière
Dimension grilleSize= grille.getGrilleSize();
Dimension banniereSize=new Dimension(grilleSize.width,grilleSize.height/8);
banniere.setSize(banniereSize);
miseEnPage.fill = GridBagConstraints.BOTH;
miseEnPage.gridx = 0;
miseEnPage.gridy = 0;

View File

@ -6,26 +6,27 @@ public class Grille extends JPanel {
private EtatPartie banniere;
private Dimension grilleSize=new Dimension(0,0);
private Case[] plateau;
private int lignes;
private int colonnes;
private int taille;
private int mines;
private int minesLeft;
// Définition du constructeur qui correspond à une grille de jeu
public Grille(EtatPartie banniere,int lignes, int colonnes, int mines){
public Grille(int lignes, int colonnes, int mines){
// Découpage de l'espace en fonction des paramètres pour la mise en place de la grille
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
this.grilleSize = new Dimension(((screenSize.height*3/4)/lignes)*colonnes, screenSize.height*3/4 );
Dimension caseSize = new Dimension(this.grilleSize.height/lignes,this.grilleSize.height/lignes);
GridLayout damier = new GridLayout(lignes,colonnes);
EtatPartie banniere = new EtatPartie(mines);
banniere.setSize(grilleSize.width,grilleSize.height/8);
this.setLayout(damier);
this.setSize(grilleSize);
this.lignes=lignes;
this.colonnes=colonnes;
this.taille=lignes*colonnes;
this.mines=mines;
this.minesLeft=mines;
this.banniere=banniere;
// On génère le plateau contenant les cases
GenererPlateau(caseSize);
@ -131,6 +132,7 @@ public class Grille extends JPanel {
// On place les cases à leur état actuel dans la grille
AfficherPlateau();
this.banniere.setMinesLeft(this.minesLeft);
}
// Méthode pour Génerer le plateau
@ -247,4 +249,9 @@ public class Grille extends JPanel {
}
}
}
// Méthode qui renvoie la banniere d'état de la partie
public EtatPartie getBanniere(){
return this.banniere;
}
}

View File

@ -13,9 +13,9 @@ public class MineLeft extends JComponent {
protected void paintComponent(Graphics pinceau) {
this.setSize(banniereSize);
Graphics chiffre = pinceau.create();
Font font = new Font("Arial", Font.BOLD, banniereSize.width*1/10);
Font font = new Font("Arial", Font.BOLD, banniereSize.width/50);
chiffre.setFont(font);
chiffre.setColor(new Color(0, 22, 236));
chiffre.drawString(Integer.toString(this.minesLeft),banniereSize.width*1/5,banniereSize.height*2/3);
chiffre.drawString("Nombre de mines restantes : "+Integer.toString(this.minesLeft),banniereSize.width/100,banniereSize.height*2/3);
}
}

View File

@ -1,6 +1,6 @@
public class Test {
public static void main(String[] args) {
new FrameJeu(20,25,50);
new FrameJeu(20,25,5);
}
}