ajout victoire
This commit is contained in:
parent
bd8d725cd1
commit
e9916196dc
@ -52,6 +52,7 @@ public class Case extends JPanel {
|
||||
if (this.getEntourage() == 0) {
|
||||
this.grille.setEntourageVisible(this);
|
||||
}
|
||||
this.grille.verifVictoire();
|
||||
}
|
||||
}
|
||||
|
||||
@ -90,6 +91,7 @@ public class Case extends JPanel {
|
||||
this.reperee=reperee;
|
||||
if ((reperee)&&(minee)){
|
||||
this.deminee=true;
|
||||
this.grille.verifVictoire();
|
||||
}
|
||||
this.grille.MinesLeft();
|
||||
}
|
||||
|
@ -10,12 +10,13 @@ public class EtatPartie extends JPanel {
|
||||
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
|
||||
protected void setMinesLeft(int minesLeft){
|
||||
public void setMinesLeft(int minesLeft){
|
||||
this.removeAll();
|
||||
this.add(new MineLeft(minesLeft,this.getSize()));
|
||||
//System.out.println("Mines restantes : "+minesLeft);
|
||||
|
5
FrameVictoire.java
Normal file
5
FrameVictoire.java
Normal file
@ -0,0 +1,5 @@
|
||||
public class FrameVictoire {
|
||||
public FrameVictoire(){
|
||||
System.out.println("Victoire!");
|
||||
}
|
||||
}
|
34
Grille.java
34
Grille.java
@ -62,7 +62,7 @@ public class Grille extends JPanel {
|
||||
int entourage = 0;
|
||||
// On vérifie pour chaque case qu'elle n'est pas déjà à l'extrémité du plateau où on cherche une case
|
||||
// Mine au dessus à droite
|
||||
if ((i>colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
if ((i>=colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i-colonnes+1){
|
||||
entourage+=1;
|
||||
@ -70,7 +70,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine au dessus à gauche
|
||||
if ((i>colonnes)&&(i%colonnes!=0)){
|
||||
if ((i>=colonnes)&&(i%colonnes!=0)){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i-colonnes-1){
|
||||
entourage+=1;
|
||||
@ -78,7 +78,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine en dessous à droite
|
||||
if ((i<=taille-colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
if ((i<taille-colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i+colonnes+1){
|
||||
entourage+=1;
|
||||
@ -86,7 +86,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine en bas à gauche
|
||||
if ((i<=taille-colonnes)&&(i%colonnes!=0)){
|
||||
if ((i<taille-colonnes)&&(i%colonnes!=0)){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i+colonnes-1){
|
||||
entourage+=1;
|
||||
@ -94,7 +94,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine au dessus
|
||||
if (i>colonnes){
|
||||
if (i>=colonnes){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i-colonnes){
|
||||
entourage+=1;
|
||||
@ -102,7 +102,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine en dessous
|
||||
if (i<=taille-colonnes){
|
||||
if (i<taille-colonnes){
|
||||
for (int j=0;j<mines;j++){
|
||||
if (caseMine[j]==i+colonnes){
|
||||
entourage+=1;
|
||||
@ -156,8 +156,7 @@ public class Grille extends JPanel {
|
||||
// Méthode pour déterminer le nombre de mines restantes
|
||||
public void MinesLeft(){
|
||||
this.minesLeft=this.mines;
|
||||
for (int i=0;i<taille;i++){
|
||||
//System.out.println("case repéree ? == "+plateau[i].getReperee());
|
||||
for (int i=0;i<this.taille;i++){
|
||||
if(plateau[i].getReperee()==true){
|
||||
this.minesLeft-=1;
|
||||
}
|
||||
@ -165,18 +164,31 @@ public class Grille extends JPanel {
|
||||
this.banniere.setMinesLeft(this.minesLeft);
|
||||
}
|
||||
|
||||
// Méthode déterminant les conditions de victoire
|
||||
public void verifVictoire(){
|
||||
int casesDeminees=0;
|
||||
for (int i=0;i<this.taille;i++){
|
||||
if(plateau[i].getDeminee()==true){
|
||||
casesDeminees+=1;
|
||||
}
|
||||
}
|
||||
if (taille==casesDeminees){
|
||||
new FrameVictoire();
|
||||
}
|
||||
}
|
||||
|
||||
// Méthode pour rendre visibles les cases autour d'un 0
|
||||
public void setEntourageVisible(Case panel){
|
||||
for(int i=0; i<this.taille;i++){
|
||||
if (plateau[i]==panel){
|
||||
// Mine au dessus à droite
|
||||
if ((i>colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
if ((i>=colonnes)&&(i%colonnes!=colonnes-1)){
|
||||
for (int j=0;j<mines;j++){
|
||||
plateau[i-colonnes+1].setVisible();
|
||||
}
|
||||
}
|
||||
// Mine au dessus à gauche
|
||||
if ((i>colonnes)&&(i%colonnes!=0)){
|
||||
if ((i>=colonnes)&&(i%colonnes!=0)){
|
||||
for (int j=0;j<mines;j++){
|
||||
plateau[i-colonnes-1].setVisible();
|
||||
}
|
||||
@ -194,7 +206,7 @@ public class Grille extends JPanel {
|
||||
}
|
||||
}
|
||||
// Mine au dessus
|
||||
if (i>colonnes){
|
||||
if (i>=colonnes){
|
||||
for (int j=0;j<mines;j++){
|
||||
plateau[i-colonnes].setVisible();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user