//Tom Monin et Clément Martins // observateurChoix V4 //Class de l'observateur des Cases import java.awt.*; import java.awt.event.*; import javax.swing.*; public class observateurCase implements MouseListener{ private int ligne, collonne; private Case[][] tableau; private plateau plat; private paintMenuJeu[] tabScore; public observateurCase(int ligne0, int collonne0, Case[][] tableau0, paintMenuJeu[] tabScore0){ this.ligne=ligne0; this.collonne=collonne0; this.tableau=tableau0; this.tabScore=tabScore0; } @Override public void mouseClicked(MouseEvent evenement){ //nous testons si le joueur a gagner/perdu //si perdu if(plateau.etatDeVictoire(this.tableau)==-1){ plateau.removeListener(this.tableau); for(int i=0;i0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ //on utilise la fonction recurisve sur la case du haut this.cliqueEvident(ligneDelta-1, collonneDelta); } //la même chose pour les 8 cases possible donc recursivite possible (voir principe en haut) 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.cliqueEvident(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.cliqueEvident(ligneDelta, 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.cliqueEvident(ligneDelta-1, collonneDelta+1); } if(collonneDelta0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()>0){ this.tableau[ligneDelta-1][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta-1][collonneDelta].repaint(); } if(ligneDelta0){ this.tableau[ligneDelta+1][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta].repaint(); } if(collonneDelta0){ this.tableau[ligneDelta][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta][collonneDelta+1].repaint(); } if(collonneDelta>0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()>0){ this.tableau[ligneDelta][collonneDelta-1].setVisibiliter(true); this.tableau[ligneDelta][collonneDelta-1].repaint(); } 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].setVisibiliter(true); this.tableau[ligneDelta-1][collonneDelta-1].repaint(); } if(collonneDelta>0 && ligneDelta0){ this.tableau[ligneDelta+1][collonneDelta-1].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta-1].repaint(); } if(collonneDelta0 && this.tableau[ligneDelta-1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta+1].getVoisin()>0){ this.tableau[ligneDelta-1][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta-1][collonneDelta+1].repaint(); } if(collonneDelta0){ this.tableau[ligneDelta+1][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta+1].repaint(); } } }