//Tom Monin et Clément Martins // observateurChoix V1 //Class pour la selection du nombre de collone et ligne et de Mine a la souris 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; 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; } @Override public void mouseClicked(MouseEvent evenement){ if(evenement.getButton() == MouseEvent.BUTTON1){ if(this.tableau[this.ligne][this.collonne].getSuspition()==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){ this.cliqueEvident(this.ligne, this.collonne); } } } if(evenement.getButton() == MouseEvent.BUTTON3){ this.tableau[this.ligne][this.collonne].suspition(); this.tableau[this.ligne][this.collonne].repaint(); } } @Override // un bouton cliqué public void mouseEntered(MouseEvent evenement){ } @Override // debut du survol public void mouseExited(MouseEvent evenement){ } @Override // fin du survol public void mousePressed(MouseEvent evenement){ } @Override // un bouton appuyé public void mouseReleased(MouseEvent evenement){ } private void cliqueEvident(int ligneDelta, int 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 && 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-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(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+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(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-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); } 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-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 && 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-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); } 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); } } private void diagbasgauche(int ligneDelta, int collonneDelta){ 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 && 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(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(collonneDelta0 && 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-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 && 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-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()>0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){ this.tableau[ligneDelta-1][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta-1][collonneDelta].repaint(); } if(ligneDelta0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){ this.tableau[ligneDelta+1][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta].repaint(); } if(collonneDelta0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){ 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].getBombe()==false){ 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].getBombe()==false){ 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].getBombe()==false){ 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].getBombe()==false){ this.tableau[ligneDelta-1][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta-1][collonneDelta+1].repaint(); } if(collonneDelta0 && this.tableau[ligneDelta+1][collonneDelta+1].getBombe()==false){ this.tableau[ligneDelta+1][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta+1].repaint(); } } }