diff --git a/CASE/Case.class b/CASE/Case.class index e663edb..d615a6b 100644 Binary files a/CASE/Case.class and b/CASE/Case.class differ diff --git a/CASE/Case.java b/CASE/Case.java index 60cf67b..8728ada 100644 --- a/CASE/Case.java +++ b/CASE/Case.java @@ -46,6 +46,13 @@ public class Case extends JComponent{ return false; } } + public boolean getSuspition2(){ + if(this.suspition==1){ + return true; + }else{ + return false; + } + } public boolean getVisibiliter(){ return this.visibilite; } diff --git a/CASE/main_ex.class b/CASE/main_ex.class index ee5ee76..3d3eba0 100644 Binary files a/CASE/main_ex.class and b/CASE/main_ex.class differ diff --git a/CASE/main_ex.java b/CASE/main_ex.java index f725679..0dcf24f 100644 --- a/CASE/main_ex.java +++ b/CASE/main_ex.java @@ -29,8 +29,7 @@ public class main_ex{ fenetre.add(tab[i][t]); } } - plateau plat = new plateau(tab); - plat.setAllBombe(8, ligne, collonne); - plat.setAllVoisin(); + plateau.setAllBombe(8, ligne, collonne, tab); + plateau.setAllVoisin(tab); } } \ No newline at end of file diff --git a/CASE/observateurCase.class b/CASE/observateurCase.class index e15ca4b..c7b5425 100644 Binary files a/CASE/observateurCase.class and b/CASE/observateurCase.class differ diff --git a/CASE/observateurCase.java b/CASE/observateurCase.java index 3a974da..84431ef 100644 --- a/CASE/observateurCase.java +++ b/CASE/observateurCase.java @@ -10,7 +10,6 @@ public class observateurCase implements MouseListener{ private Case[][] tableau; private plateau plat; public observateurCase(int ligne0, int collonne0, Case[][] tableau0){ - // pour savoir si c'est l'observateur de la fleche de gauche ou droite this.ligne=ligne0; this.collonne=collonne0; this.tableau=tableau0; @@ -18,17 +17,31 @@ public class observateurCase implements MouseListener{ @Override public void mouseClicked(MouseEvent evenement){ if(evenement.getButton() == MouseEvent.BUTTON1){ - if(this.tableau[this.ligne][this.collonne].getSuspition()==false){ + if(this.tableau[this.ligne][this.collonne].getSuspition()==false && this.tableau[this.ligne][this.collonne].getVisibiliter()==false){ this.tableau[this.ligne][this.collonne].setVisibiliter(true); this.tableau[this.ligne][this.collonne].repaint(); - if(this.tableau[this.ligne][this.collonne].getVoisin()==0){ + if(this.tableau[this.ligne][this.collonne].getVoisin()==0 && this.tableau[this.ligne][this.collonne].getBombe()==false){ this.cliqueEvident(this.ligne, this.collonne); } + int resultat=plateau.etatDeVictoire(this.tableau); + if(resultat==-1){ + plateau.perduGagner(this.tableau); + } + if(resultat==1){ + plateau.perduGagner(this.tableau); + } } } if(evenement.getButton() == MouseEvent.BUTTON3){ this.tableau[this.ligne][this.collonne].suspition(); this.tableau[this.ligne][this.collonne].repaint(); + int resultat=plateau.etatDeVictoire(this.tableau); + if(resultat==-1){ + System.out.println("perdu"); + } + if(resultat==1){ + System.out.println("gagner"); + } } } @Override // un bouton cliqué @@ -47,9 +60,13 @@ public class observateurCase implements MouseListener{ } private void cliqueEvident(int ligneDelta, int collonneDelta){ + this.affichageVoisinEvident(ligneDelta, collonneDelta); if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ this.haut(ligneDelta-1, collonneDelta); } + if(collonneDelta>0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ + this.diaghautgauche(ligneDelta-1, collonneDelta-1); + } if(ligneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ this.gauche(ligneDelta, collonneDelta-1); } - if(collonneDelta>0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ - this.diaghautgauche(ligneDelta-1, collonneDelta-1); - } if(collonneDelta>0 && ligneDelta0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ this.haut(ligneDelta-1, collonneDelta); } - if(collonneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ this.gauche(ligneDelta, collonneDelta-1); } + if(collonneDelta0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ this.diaghautgauche(ligneDelta-1, collonneDelta-1); } - if(collonneDelta>0 && ligneDelta0 && this.tableau[ligneDelta-1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta+1].getBombe()==false){ this.diaghautdroite(ligneDelta-1, collonneDelta+1); } - if(collonneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ this.gauche(ligneDelta, collonneDelta-1); } - if(collonneDelta>0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ - this.diaghautgauche(ligneDelta-1, collonneDelta-1); + if(collonneDelta0 && ligneDelta0 && this.tableau[ligneDelta-1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta+1].getBombe()==false){ - this.diaghautdroite(ligneDelta-1, collonneDelta+1); - } if(collonneDelta0 && ligneDelta0 && this.tableau[ligneDelta-1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta+1].getBombe()==false){ - this.diaghautdroite(ligneDelta-1, collonneDelta+1); - } - if(collonneDelta0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ - this.diaghautgauche(ligneDelta-1, collonneDelta-1); - } - if(collonneDelta>0 && ligneDelta0 && this.tableau[ligneDelta-1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta+1].getBombe()==false){ this.diaghautdroite(ligneDelta-1, collonneDelta+1); } @@ -183,12 +173,6 @@ public class observateurCase implements MouseListener{ if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ this.haut(ligneDelta-1, collonneDelta); } - if(ligneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ this.gauche(ligneDelta, collonneDelta-1); } @@ -206,15 +190,9 @@ public class observateurCase implements MouseListener{ this.tableau[ligneDelta][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta][collonneDelta].repaint(); this.affichageVoisinEvident(ligneDelta, collonneDelta); - if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ - this.haut(ligneDelta-1, collonneDelta); - } if(ligneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ this.gauche(ligneDelta, collonneDelta-1); } @@ -235,15 +213,9 @@ public class observateurCase implements MouseListener{ if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ this.haut(ligneDelta-1, collonneDelta); } - if(ligneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ - this.gauche(ligneDelta, collonneDelta-1); - } if(collonneDelta>0 && ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta-1].getBombe()==false){ this.diaghautgauche(ligneDelta-1, collonneDelta-1); } @@ -258,18 +230,12 @@ public class observateurCase implements MouseListener{ this.tableau[ligneDelta][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta][collonneDelta].repaint(); this.affichageVoisinEvident(ligneDelta, collonneDelta); - if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ - this.haut(ligneDelta-1, collonneDelta); - } if(ligneDelta0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){ - this.gauche(ligneDelta, collonneDelta-1); - } if(collonneDelta>0 && ligneDelta0){ - if(tableau[i-1][t].getBombe()==true){ + if(tableau0[i-1][t].getBombe()==true){ voisin++; } if(t>0){ - if(tableau[i-1][t-1].getBombe()==true){ + if(tableau0[i-1][t-1].getBombe()==true){ voisin++; } } - if(t0){ - if(tableau[i+1][t-1].getBombe()==true){ + if(tableau0[i+1][t-1].getBombe()==true){ voisin++; } } - if(t0){ - if(tableau[i][t-1].getBombe()==true){ + if(tableau0[i][t-1].getBombe()==true){ voisin++; } } - if(t0){ + return 0; + } + return 1; + } + public static void perduGagner(Case[][] tableau0){ + for(int i=0; i