maj
This commit is contained in:
parent
fb6417c44a
commit
1c6281a74c
51
Case.java
51
Case.java
@ -8,7 +8,7 @@ public class Case extends JPanel {
|
|||||||
private boolean visible;
|
private boolean visible;
|
||||||
private boolean minee;
|
private boolean minee;
|
||||||
private boolean reperee;
|
private boolean reperee;
|
||||||
private boolean finDePartie;
|
private boolean enJeu;
|
||||||
|
|
||||||
// Définition du constructeur
|
// Définition du constructeur
|
||||||
public Case(Grille grille, Dimension caseSize) {
|
public Case(Grille grille, Dimension caseSize) {
|
||||||
@ -17,7 +17,7 @@ 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.enJeu=true;
|
||||||
|
|
||||||
// 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.addMouseListener(new ListenerCase());
|
this.addMouseListener(new ListenerCase());
|
||||||
@ -32,34 +32,43 @@ public class Case extends JPanel {
|
|||||||
// Méthode qui permet de montrer la case, et fait perdre si elle est minée
|
// Méthode qui permet de montrer la case, et fait perdre si elle est minée
|
||||||
public void setVisible(){
|
public void setVisible(){
|
||||||
|
|
||||||
|
// On vérfie que la case n'est pas déjà visible
|
||||||
if (!this.visible){
|
if (!this.visible){
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
|
|
||||||
// On affiche une mine si la case est minée, sinon le nombre de mines autour d'elle
|
// On affiche dans la case le nombre de mine adjacentes ( rien si aucune )
|
||||||
if ((this.minee)&&(!this.finDePartie)) {
|
if ((!this.minee)&&(!this.reperee)){
|
||||||
this.removeAll();
|
|
||||||
System.out.println(this.finDePartie);
|
|
||||||
this.setBackground(new Color(200, 0, 0));
|
|
||||||
this.finDePartie=true;
|
|
||||||
this.grille.setAllVisible();
|
|
||||||
System.out.println(this.finDePartie);
|
|
||||||
}
|
|
||||||
else if ((this.minee)&&(this.finDePartie)) {
|
|
||||||
this.setBackground(new Color(236, 0, 140));
|
|
||||||
} else {
|
|
||||||
this.setBackground(new Color(80, 80, 80));
|
this.setBackground(new Color(80, 80, 80));
|
||||||
|
|
||||||
if (this.entourage > 0) {
|
if (this.entourage > 0) {
|
||||||
this.add(new Entourage(this.entourage, this.getSize()));
|
this.add(new Entourage(this.entourage, this.getSize()));
|
||||||
}
|
}
|
||||||
|
// Cherche a afficher les cases adjacente s'il n'y a aucune mine autour
|
||||||
|
else if (this.entourage == 0) {
|
||||||
|
this.grille.setEntourageVisible(this);
|
||||||
|
}
|
||||||
|
if (this.enJeu){
|
||||||
this.grille.verifVictoire();
|
this.grille.verifVictoire();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
// S'il y a une mine et que c'est la première cliquée
|
||||||
|
else if ((this.minee)&&(this.enJeu)) {
|
||||||
|
System.out.println("Fin de partie première mine avant boum:"+this.enJeu);
|
||||||
|
this.enJeu=false;
|
||||||
|
System.out.println("Fin de partie première mine après boum:"+this.enJeu);
|
||||||
|
this.setBackground(new Color(200, 0, 0));
|
||||||
|
this.grille.setAllVisible();
|
||||||
|
}
|
||||||
|
// S'il y a une mine est que la partie est finie
|
||||||
|
if ((this.minee)&&(!this.enJeu)) {
|
||||||
|
System.out.println("Fin de partie autres mines:"+this.enJeu);
|
||||||
|
this.setBackground(new Color(236, 0, 140));
|
||||||
|
|
||||||
|
// Sinon le nombre de mines autour d'elle
|
||||||
|
}
|
||||||
|
|
||||||
// Mise à jour de l'affichage de la case
|
// Mise à jour de l'affichage de la case
|
||||||
this.updateUI();
|
this.updateUI();
|
||||||
if ((this.entourage == 0)&&(!minee)) {
|
|
||||||
this.grille.setEntourageVisible(this);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,7 +118,7 @@ public class Case extends JPanel {
|
|||||||
|
|
||||||
// Methode pour montrer que la partie est gagnée
|
// Methode pour montrer que la partie est gagnée
|
||||||
public void setVictoire(){
|
public void setVictoire(){
|
||||||
this.finDePartie=true;
|
this.enJeu=false;
|
||||||
if (this.minee==true){
|
if (this.minee==true){
|
||||||
removeAll();
|
removeAll();
|
||||||
this.setBackground(new Color(236, 214, 0));;
|
this.setBackground(new Color(236, 214, 0));;
|
||||||
@ -118,7 +127,7 @@ public class Case extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Methode pour savoir dans le Listener si la partie est finie ou non
|
// Methode pour savoir dans le Listener si la partie est finie ou non
|
||||||
public boolean getFinDePartie(){
|
public boolean getEnJeu(){
|
||||||
return this.finDePartie;
|
return this.enJeu;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@ public class EtatPartie extends JPanel {
|
|||||||
public void setMinesLeft(int minesLeft){
|
public void setMinesLeft(int minesLeft){
|
||||||
this.removeAll();
|
this.removeAll();
|
||||||
this.add(new MineLeft(minesLeft,this.getSize()));
|
this.add(new MineLeft(minesLeft,this.getSize()));
|
||||||
//System.out.println("Mines restantes : "+minesLeft);
|
|
||||||
this.repaint();
|
this.repaint();
|
||||||
this.updateUI();
|
this.updateUI();
|
||||||
}
|
}
|
||||||
|
@ -8,11 +8,9 @@ public class ListenerCase implements MouseListener {
|
|||||||
// Méthode qui va servir à détecter le click de la souris
|
// Méthode qui va servir à détecter le click de la souris
|
||||||
public void mouseClicked(MouseEvent evenement) {
|
public void mouseClicked(MouseEvent evenement) {
|
||||||
Case panel = (Case) evenement.getSource();
|
Case panel = (Case) evenement.getSource();
|
||||||
if (panel.getFinDePartie() == false) {
|
if (panel.getEnJeu()) {
|
||||||
// Si le joueur clique gauche, tant que la case n'est pas marquée, elle sera
|
// Si le joueur clique gauche, on tente de révéler la case
|
||||||
// révélée
|
if ((evenement.getButton() == MouseEvent.BUTTON1)&&(!panel.getVisible())&&(!panel.getReperee())){
|
||||||
if ((evenement.getButton() == MouseEvent.BUTTON1) && (panel.getVisible() == false)
|
|
||||||
&& (this.marquage == 0)) {
|
|
||||||
panel.setVisible();
|
panel.setVisible();
|
||||||
}
|
}
|
||||||
// Si le joueur clique droit, la case sera marquée
|
// Si le joueur clique droit, la case sera marquée
|
||||||
|
@ -16,6 +16,6 @@ public class MineLeft extends JComponent {
|
|||||||
Font font = new Font("Arial", Font.BOLD, banniereSize.width/50);
|
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("Nombre de mines restantes : "+Integer.toString(this.minesLeft),banniereSize.width/100,banniereSize.height*2/3);
|
chiffre.drawString("Mines restantes : "+Integer.toString(this.minesLeft),banniereSize.width/100,banniereSize.height*2/3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
public class Test {
|
public class Test {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
new FrameJeu(20,25,5);
|
new FrameJeu(20,25,10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15,4 +15,7 @@ public class Test {
|
|||||||
* boolean markSupported();
|
* boolean markSupported();
|
||||||
* void mark(int);
|
* void mark(int);
|
||||||
* void reset();
|
* void reset();
|
||||||
|
*
|
||||||
|
* BufferedReader
|
||||||
|
* BufferedWriter
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user