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 visible;
|
||||||
private boolean minee;
|
private boolean minee;
|
||||||
private boolean reperee;
|
private boolean reperee;
|
||||||
private ListenerCase listener;
|
|
||||||
private boolean finDePartie;
|
private boolean finDePartie;
|
||||||
|
|
||||||
// Définition du constructeur
|
// Définition du constructeur
|
||||||
@ -18,11 +17,10 @@ public class Case extends JPanel {
|
|||||||
this.visible=false;
|
this.visible=false;
|
||||||
this.reperee=false;
|
this.reperee=false;
|
||||||
this.grille=grille;
|
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
|
// On place un listener sur notre case pour qu'elle réagisse aux clicks du joueur
|
||||||
this.listener = new ListenerCase();
|
this.addMouseListener(new ListenerCase());
|
||||||
this.addMouseListener(this.listener);
|
|
||||||
|
|
||||||
// Mise en page de la case et couleur par défaut
|
// Mise en page de la case et couleur par défaut
|
||||||
this.setSize(caseSize);
|
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
|
// On affiche une mine si la case est minée, sinon le nombre de mines autour d'elle
|
||||||
if ((this.minee)&&(!this.finDePartie)) {
|
if ((this.minee)&&(!this.finDePartie)) {
|
||||||
|
this.removeAll();
|
||||||
|
System.out.println(this.finDePartie);
|
||||||
this.setBackground(new Color(200, 0, 0));
|
this.setBackground(new Color(200, 0, 0));
|
||||||
this.grille.setAllVisible();
|
|
||||||
this.finDePartie=true;
|
this.finDePartie=true;
|
||||||
|
this.grille.setAllVisible();
|
||||||
|
System.out.println(this.finDePartie);
|
||||||
}
|
}
|
||||||
else if ((this.minee)&&(this.finDePartie)) {
|
else if ((this.minee)&&(this.finDePartie)) {
|
||||||
this.setBackground(new Color(236, 0, 140));
|
this.setBackground(new Color(236, 0, 140));
|
||||||
|
@ -8,12 +8,7 @@ public class EtatPartie extends JPanel {
|
|||||||
|
|
||||||
// On défini un style à la bannière
|
// On défini un style à la bannière
|
||||||
this.setBackground( new Color(0, 236, 96));
|
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
|
// Méthode pour afficher le nombre de mines restantes
|
||||||
public void setMinesLeft(int minesLeft){
|
public void setMinesLeft(int minesLeft){
|
||||||
|
@ -16,17 +16,16 @@ public class FrameJeu{
|
|||||||
fenetre.setLayout(new GridBagLayout());
|
fenetre.setLayout(new GridBagLayout());
|
||||||
GridBagConstraints miseEnPage = new GridBagConstraints();
|
GridBagConstraints miseEnPage = new GridBagConstraints();
|
||||||
|
|
||||||
// Création de la bannière
|
|
||||||
EtatPartie banniere = new EtatPartie(mines);
|
|
||||||
|
|
||||||
// Création de la grille de Jeu
|
// 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
|
// Mise en place de la bannière
|
||||||
Dimension grilleSize= grille.getGrilleSize();
|
Dimension grilleSize= grille.getGrilleSize();
|
||||||
Dimension banniereSize=new Dimension(grilleSize.width,grilleSize.height/8);
|
|
||||||
banniere.setSize(banniereSize);
|
|
||||||
miseEnPage.fill = GridBagConstraints.BOTH;
|
miseEnPage.fill = GridBagConstraints.BOTH;
|
||||||
miseEnPage.gridx = 0;
|
miseEnPage.gridx = 0;
|
||||||
miseEnPage.gridy = 0;
|
miseEnPage.gridy = 0;
|
||||||
|
13
Grille.java
13
Grille.java
@ -6,26 +6,27 @@ public class Grille extends JPanel {
|
|||||||
private EtatPartie banniere;
|
private EtatPartie banniere;
|
||||||
private Dimension grilleSize=new Dimension(0,0);
|
private Dimension grilleSize=new Dimension(0,0);
|
||||||
private Case[] plateau;
|
private Case[] plateau;
|
||||||
private int lignes;
|
|
||||||
private int colonnes;
|
private int colonnes;
|
||||||
private int taille;
|
private int taille;
|
||||||
private int mines;
|
private int mines;
|
||||||
private int minesLeft;
|
private int minesLeft;
|
||||||
|
|
||||||
// Définition du constructeur qui correspond à une grille de jeu
|
// 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
|
// Découpage de l'espace en fonction des paramètres pour la mise en place de la grille
|
||||||
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
|
||||||
this.grilleSize = new Dimension(((screenSize.height*3/4)/lignes)*colonnes, screenSize.height*3/4 );
|
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);
|
Dimension caseSize = new Dimension(this.grilleSize.height/lignes,this.grilleSize.height/lignes);
|
||||||
GridLayout damier = new GridLayout(lignes,colonnes);
|
GridLayout damier = new GridLayout(lignes,colonnes);
|
||||||
|
EtatPartie banniere = new EtatPartie(mines);
|
||||||
|
banniere.setSize(grilleSize.width,grilleSize.height/8);
|
||||||
this.setLayout(damier);
|
this.setLayout(damier);
|
||||||
this.setSize(grilleSize);
|
this.setSize(grilleSize);
|
||||||
this.lignes=lignes;
|
|
||||||
this.colonnes=colonnes;
|
this.colonnes=colonnes;
|
||||||
this.taille=lignes*colonnes;
|
this.taille=lignes*colonnes;
|
||||||
this.mines=mines;
|
this.mines=mines;
|
||||||
|
this.minesLeft=mines;
|
||||||
this.banniere=banniere;
|
this.banniere=banniere;
|
||||||
// On génère le plateau contenant les cases
|
// On génère le plateau contenant les cases
|
||||||
GenererPlateau(caseSize);
|
GenererPlateau(caseSize);
|
||||||
@ -131,6 +132,7 @@ public class Grille extends JPanel {
|
|||||||
|
|
||||||
// On place les cases à leur état actuel dans la grille
|
// On place les cases à leur état actuel dans la grille
|
||||||
AfficherPlateau();
|
AfficherPlateau();
|
||||||
|
this.banniere.setMinesLeft(this.minesLeft);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode pour Génerer le plateau
|
// 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) {
|
protected void paintComponent(Graphics pinceau) {
|
||||||
this.setSize(banniereSize);
|
this.setSize(banniereSize);
|
||||||
Graphics chiffre = pinceau.create();
|
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.setFont(font);
|
||||||
chiffre.setColor(new Color(0, 22, 236));
|
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