avancée fin
This commit is contained in:
parent
528870aeff
commit
fb6417c44a
11
Case.java
11
Case.java
@ -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));
|
||||
|
@ -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){
|
||||
|
@ -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;
|
||||
|
13
Grille.java
13
Grille.java
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user