ajout de commentaires
This commit is contained in:
parent
4542c594ba
commit
a2836b2f08
BIN
CASE/Case.class
BIN
CASE/Case.class
Binary file not shown.
@ -1,26 +1,36 @@
|
|||||||
// Tom Monin et Clément Martins
|
// Tom Monin et Clément Martins
|
||||||
// paintChoix V1
|
// paintChoix V3
|
||||||
// class pour l'affichage de la selection des lignes, collonnes et nombre de mines
|
// class représentant une case dans la partie
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.JComponent;
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
public class Case extends JComponent{
|
public class Case extends JComponent{
|
||||||
private boolean visibilite;
|
//Etat de la case:
|
||||||
private boolean bombe;
|
private boolean visibilite; //Visible ou pas
|
||||||
private int voisin;
|
private boolean bombe; //Miner ou pas
|
||||||
private int suspition;
|
private int voisin; //Le nombre de mine aux alentours
|
||||||
|
private int suspition; // son Etat de suspition ( 0:pas une bombe, 1:en est une, 2:je doute)
|
||||||
|
// Les Images de la case (point d'interogation, etoile et bombe)
|
||||||
private Image interogation, etoile, imgboombe;
|
private Image interogation, etoile, imgboombe;
|
||||||
|
|
||||||
|
//Constructeur de la Case
|
||||||
public Case(){
|
public Case(){
|
||||||
this.visibilite=false;
|
//nous initialisons les valeurs
|
||||||
this.bombe=false;
|
this.visibilite=false; //la visibiler est fausse donc la case est cacher
|
||||||
this.voisin=0;
|
this.bombe=false; // ce n'est pas une bombe
|
||||||
this.suspition=0;
|
this.voisin=0; // elle n'a pas de voisin bombe
|
||||||
|
this.suspition=0; // la suspition est a 0 (pas une bombe)
|
||||||
|
|
||||||
|
// nous chargeons les images
|
||||||
this.interogation= Toolkit.getDefaultToolkit().getImage("./IMAGE/pointintero.png");
|
this.interogation= Toolkit.getDefaultToolkit().getImage("./IMAGE/pointintero.png");
|
||||||
this.etoile= Toolkit.getDefaultToolkit().getImage("./IMAGE/etoile.png");
|
this.etoile= Toolkit.getDefaultToolkit().getImage("./IMAGE/etoile.png");
|
||||||
this.imgboombe= Toolkit.getDefaultToolkit().getImage("./IMAGE/bombe.png");
|
this.imgboombe= Toolkit.getDefaultToolkit().getImage("./IMAGE/bombe.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Nous mettons les getter/setter
|
||||||
|
|
||||||
public void setVisibiliter(boolean trueorfalse){
|
public void setVisibiliter(boolean trueorfalse){
|
||||||
this.visibilite=trueorfalse;
|
this.visibilite=trueorfalse;
|
||||||
}
|
}
|
||||||
@ -46,6 +56,7 @@ public class Case extends JComponent{
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// il y a deux suspition pour faciliter( le deux pour savoir si elle est suspecter sur 1:c'est une bombe et l'autre sur 0:pas une bombe)
|
||||||
public boolean getSuspition2(){
|
public boolean getSuspition2(){
|
||||||
if(this.suspition==1){
|
if(this.suspition==1){
|
||||||
return true;
|
return true;
|
||||||
@ -59,6 +70,8 @@ public class Case extends JComponent{
|
|||||||
public int getVoisin(){
|
public int getVoisin(){
|
||||||
return this.voisin;
|
return this.voisin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//on paint la case en fonction de ses attribut et donc son etat
|
||||||
@Override
|
@Override
|
||||||
protected void paintComponent(Graphics pinceau) {
|
protected void paintComponent(Graphics pinceau) {
|
||||||
// obligatoire : on crée un nouveau pinceau pour pouvoir le modifier plus tard
|
// obligatoire : on crée un nouveau pinceau pour pouvoir le modifier plus tard
|
||||||
@ -69,30 +82,44 @@ public class Case extends JComponent{
|
|||||||
secondPinceau.setColor(this.getBackground());
|
secondPinceau.setColor(this.getBackground());
|
||||||
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
||||||
}
|
}
|
||||||
|
//On paint ce que l'on veut maintenant
|
||||||
|
//si la case est cacher (pas visible)
|
||||||
if(this.visibilite==false){
|
if(this.visibilite==false){
|
||||||
|
//on dessinne un rectangle gris sur un fond noir
|
||||||
secondPinceau.setColor(new Color(0,0,0));
|
secondPinceau.setColor(new Color(0,0,0));
|
||||||
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
||||||
secondPinceau.setColor(new Color(100, 100, 100));
|
secondPinceau.setColor(new Color(100, 100, 100));
|
||||||
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
||||||
|
//si on supecte que c'est une bome
|
||||||
if(this.suspition==1){
|
if(this.suspition==1){
|
||||||
|
//on affiche l'etoile
|
||||||
secondPinceau.drawImage(this.etoile, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
secondPinceau.drawImage(this.etoile, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
||||||
}
|
}
|
||||||
|
//si on suspecte que on ne sais pas
|
||||||
if(this.suspition==2){
|
if(this.suspition==2){
|
||||||
|
//on affiche le point d'interogation
|
||||||
secondPinceau.drawImage(this.interogation, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
secondPinceau.drawImage(this.interogation, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//si la case est afficher(visible)
|
||||||
if(this.visibilite==true){
|
if(this.visibilite==true){
|
||||||
|
//on dessine un rectangle blanc sur un fond noir
|
||||||
secondPinceau.setColor(new Color(0,0,0));
|
secondPinceau.setColor(new Color(0,0,0));
|
||||||
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight());
|
||||||
secondPinceau.setColor(new Color(255, 255, 255));
|
secondPinceau.setColor(new Color(255, 255, 255));
|
||||||
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
||||||
secondPinceau.setColor(new Color(255, 0, 0));
|
secondPinceau.setColor(new Color(255, 0, 0));
|
||||||
|
//si la case a au moins 1 voisin qui est une bombe
|
||||||
if(this.voisin>0){
|
if(this.voisin>0){
|
||||||
|
//on ecrit le nombre de voisin que elle a
|
||||||
secondPinceau.drawString(String.valueOf(voisin), this.getWidth()/2, this.getHeight()/2);
|
secondPinceau.drawString(String.valueOf(voisin), this.getWidth()/2, this.getHeight()/2);
|
||||||
}
|
}
|
||||||
|
//si la case est une bombe
|
||||||
if(this.bombe==true){
|
if(this.bombe==true){
|
||||||
|
//on remplace le rectangle blanc par un rectangle rouge
|
||||||
secondPinceau.setColor(new Color(255,0,125));
|
secondPinceau.setColor(new Color(255,0,125));
|
||||||
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18);
|
||||||
|
//on affiche la bombe
|
||||||
secondPinceau.drawImage(this.imgboombe, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
secondPinceau.drawImage(this.imgboombe, this.getWidth()/20*5, this.getHeight()/20*5, this.getWidth()/20*10, this.getHeight()/20*10 ,this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
// Tom Monint et Clément Martins
|
// Tom Monint et Clément Martins
|
||||||
// main_ex V1
|
// main_ex V4
|
||||||
// Classe ayant pour but d'être executer
|
// Classe ayant pour but d'être executer
|
||||||
|
|
||||||
//importons les packages necessaires
|
//importons les packages necessaires
|
||||||
@ -15,21 +15,26 @@ public class main_ex{
|
|||||||
fenetre.setLocation(0,0);
|
fenetre.setLocation(0,0);
|
||||||
//on choisi une taille arbitraire
|
//on choisi une taille arbitraire
|
||||||
fenetre.setSize(1500,800);
|
fenetre.setSize(1500,800);
|
||||||
//nous utiliserons un gestionnaire GridLayout
|
//nous utiliserons un gestionnaire GridLayout de dimensions choisi précédament
|
||||||
GridLayout grille = new GridLayout(ligne,collonne);
|
GridLayout grille = new GridLayout(ligne,collonne);
|
||||||
fenetre.setLayout(grille);
|
fenetre.setLayout(grille);
|
||||||
// l'application ne se fermera que si on clique sur
|
// l'application ne se fermera que si on clique sur
|
||||||
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
fenetre.setVisible(true);
|
fenetre.setVisible(true);
|
||||||
|
// nous creons le tableau de Case qui représente l'etat du jeu
|
||||||
Case[][] tab = new Case[ligne][collonne];
|
Case[][] tab = new Case[ligne][collonne];
|
||||||
|
// on ajoute a la fenetre toute les case (ligne*collonne)
|
||||||
for(int i=0; i<ligne; i++){
|
for(int i=0; i<ligne; i++){
|
||||||
for(int t=0; t<collonne; t++){
|
for(int t=0; t<collonne; t++){
|
||||||
tab[i][t]= new Case();
|
tab[i][t]= new Case();
|
||||||
|
//nous ajoutons aussi a chaque case son observateur de case
|
||||||
tab[i][t].addMouseListener(new observateurCase(i, t, tab));
|
tab[i][t].addMouseListener(new observateurCase(i, t, tab));
|
||||||
fenetre.add(tab[i][t]);
|
fenetre.add(tab[i][t]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//nous disposons les bombe dans le jeu
|
||||||
plateau.setAllBombe(8, ligne, collonne, tab);
|
plateau.setAllBombe(8, ligne, collonne, tab);
|
||||||
|
//maitenant que les bombe sont mise nous pouvons modifier le nombre de voisin des cases
|
||||||
plateau.setAllVoisin(tab);
|
plateau.setAllVoisin(tab);
|
||||||
}
|
}
|
||||||
}
|
}
|
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
//Tom Monin et Clément Martins
|
//Tom Monin et Clément Martins
|
||||||
// observateurChoix V1
|
// observateurChoix V4
|
||||||
//Class pour la selection du nombre de collone et ligne et de Mine a la souris
|
//Class de l'observateur des Cases
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
@ -16,29 +16,41 @@ public class observateurCase implements MouseListener{
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(MouseEvent evenement){
|
public void mouseClicked(MouseEvent evenement){
|
||||||
|
//si on clique gauche
|
||||||
if(evenement.getButton() == MouseEvent.BUTTON1){
|
if(evenement.getButton() == MouseEvent.BUTTON1){
|
||||||
|
//si la case n'est pas suspecter(d'etre une bombe ou je sais pas) et que elle n'est pas visible
|
||||||
if(this.tableau[this.ligne][this.collonne].getSuspition()==false && this.tableau[this.ligne][this.collonne].getVisibiliter()==false){
|
if(this.tableau[this.ligne][this.collonne].getSuspition()==false && this.tableau[this.ligne][this.collonne].getVisibiliter()==false){
|
||||||
|
//nous la rendons visible et la reafichons
|
||||||
this.tableau[this.ligne][this.collonne].setVisibiliter(true);
|
this.tableau[this.ligne][this.collonne].setVisibiliter(true);
|
||||||
this.tableau[this.ligne][this.collonne].repaint();
|
this.tableau[this.ligne][this.collonne].repaint();
|
||||||
|
//si elle n'a pas de voisin nous pouvons afficher les case aux alentours qui serons évidentes a cliquer
|
||||||
if(this.tableau[this.ligne][this.collonne].getVoisin()==0 && this.tableau[this.ligne][this.collonne].getBombe()==false){
|
if(this.tableau[this.ligne][this.collonne].getVoisin()==0 && this.tableau[this.ligne][this.collonne].getBombe()==false){
|
||||||
this.cliqueEvident(this.ligne, this.collonne);
|
this.cliqueEvident(this.ligne, this.collonne);
|
||||||
}
|
}
|
||||||
|
//nous testons si le joueur a gagner/perdu
|
||||||
int resultat=plateau.etatDeVictoire(this.tableau);
|
int resultat=plateau.etatDeVictoire(this.tableau);
|
||||||
|
//si il perd
|
||||||
if(resultat==-1){
|
if(resultat==-1){
|
||||||
plateau.perduGagner(this.tableau);
|
plateau.perduGagner(this.tableau);
|
||||||
}
|
}
|
||||||
|
//si il gagne
|
||||||
if(resultat==1){
|
if(resultat==1){
|
||||||
plateau.perduGagner(this.tableau);
|
plateau.perduGagner(this.tableau);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//si clique droit
|
||||||
if(evenement.getButton() == MouseEvent.BUTTON3){
|
if(evenement.getButton() == MouseEvent.BUTTON3){
|
||||||
|
//nous modifions la suspitions de la case et la reafichons
|
||||||
this.tableau[this.ligne][this.collonne].suspition();
|
this.tableau[this.ligne][this.collonne].suspition();
|
||||||
this.tableau[this.ligne][this.collonne].repaint();
|
this.tableau[this.ligne][this.collonne].repaint();
|
||||||
|
//nous testons si le joeur a gagner/perdu
|
||||||
int resultat=plateau.etatDeVictoire(this.tableau);
|
int resultat=plateau.etatDeVictoire(this.tableau);
|
||||||
|
//si perdu
|
||||||
if(resultat==-1){
|
if(resultat==-1){
|
||||||
System.out.println("perdu");
|
System.out.println("perdu");
|
||||||
}
|
}
|
||||||
|
//si gagner
|
||||||
if(resultat==1){
|
if(resultat==1){
|
||||||
System.out.println("gagner");
|
System.out.println("gagner");
|
||||||
}
|
}
|
||||||
@ -59,223 +71,80 @@ public class observateurCase implements MouseListener{
|
|||||||
public void mouseReleased(MouseEvent evenement){
|
public void mouseReleased(MouseEvent evenement){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------fonction permettant d'afficher toutes les case n'ayant pas de voisin adjacente utilisant plusieur fonction récursive-----------------------------
|
||||||
|
|
||||||
|
|
||||||
private void cliqueEvident(int ligneDelta, int collonneDelta){
|
private void cliqueEvident(int ligneDelta, int collonneDelta){
|
||||||
|
//nous affichons la case
|
||||||
|
this.tableau[ligneDelta][collonneDelta].setVisibiliter(true);
|
||||||
|
this.tableau[ligneDelta][collonneDelta].repaint();
|
||||||
|
//nous affichons les cases possédants des voisins
|
||||||
this.affichageVoisinEvident(ligneDelta, collonneDelta);
|
this.affichageVoisinEvident(ligneDelta, collonneDelta);
|
||||||
|
//si la case du haut existe et n'est pas visible et n'a pas de voisin et n'est pas une bombe
|
||||||
if(ligneDelta>0 && this.tableau[ligneDelta-1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta-1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta-1][collonneDelta].getBombe()==false){
|
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);
|
//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){
|
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);
|
this.cliqueEvident(ligneDelta-1, collonneDelta-1);
|
||||||
}
|
}
|
||||||
if(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
if(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
this.cliqueEvident(ligneDelta+1, collonneDelta);
|
||||||
}
|
}
|
||||||
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
||||||
this.droite(ligneDelta, collonneDelta+1);
|
this.cliqueEvident(ligneDelta, collonneDelta+1);
|
||||||
}
|
}
|
||||||
if(collonneDelta>0 && this.tableau[ligneDelta][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta-1].getBombe()==false){
|
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.gauche(ligneDelta, collonneDelta-1);
|
this.cliqueEvident(ligneDelta, collonneDelta-1);
|
||||||
}
|
}
|
||||||
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta-1].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta-1].getBombe()==false){
|
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
this.cliqueEvident(ligneDelta+1, collonneDelta-1);
|
||||||
}
|
}
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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){
|
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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.diaghautdroite(ligneDelta-1, collonneDelta+1);
|
this.cliqueEvident(ligneDelta-1, collonneDelta+1);
|
||||||
}
|
}
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta+1].getBombe()==false){
|
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
this.cliqueEvident(ligneDelta+1, collonneDelta+1);
|
||||||
}
|
|
||||||
}
|
|
||||||
private void haut(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(collonneDelta>0 && 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<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
|
||||||
this.droite(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<this.tableau[ligneDelta].length-1 && 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.diaghautdroite(ligneDelta-1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void bas(int ligneDelta, int collonneDelta){
|
|
||||||
this.tableau[ligneDelta][collonneDelta].setVisibiliter(true);
|
|
||||||
this.tableau[ligneDelta][collonneDelta].repaint();
|
|
||||||
this.affichageVoisinEvident(ligneDelta, collonneDelta);
|
|
||||||
if(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
|
||||||
}
|
|
||||||
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.gauche(ligneDelta, collonneDelta-1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
|
||||||
this.droite(ligneDelta, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void gauche(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(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
|
||||||
}
|
|
||||||
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.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 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void droite(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(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
|
||||||
}
|
|
||||||
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
|
||||||
this.droite(ligneDelta, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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.diaghautdroite(ligneDelta-1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void diaghautgauche(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(collonneDelta>0 && 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 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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.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<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
|
||||||
}
|
|
||||||
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.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 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void diaghautdroite(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(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
|
||||||
this.droite(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<this.tableau[ligneDelta].length-1 && 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.diaghautdroite(ligneDelta-1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
private void diagbasdroite(int ligneDelta, int collonneDelta){
|
|
||||||
this.tableau[ligneDelta][collonneDelta].setVisibiliter(true);
|
|
||||||
this.tableau[ligneDelta][collonneDelta].repaint();
|
|
||||||
this.affichageVoisinEvident(ligneDelta, collonneDelta);
|
|
||||||
if(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()==0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
|
||||||
this.bas(ligneDelta+1, collonneDelta);
|
|
||||||
}
|
|
||||||
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()==0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
|
||||||
this.droite(ligneDelta, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && 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.diagbasgauche(ligneDelta+1, collonneDelta-1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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.diaghautdroite(ligneDelta-1, collonneDelta+1);
|
|
||||||
}
|
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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.diagbasdroite(ligneDelta+1, collonneDelta+1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------fonction qui affiche toutes les case possédant un voisin d'une case donnée------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
private void affichageVoisinEvident(int ligneDelta, int collonneDelta){
|
private void affichageVoisinEvident(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){
|
//nous regardons les 8 case adjacentes et si elle a des voisin
|
||||||
|
//si elle en a alors nous la rendons visible
|
||||||
|
if(ligneDelta>0 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta-1][collonneDelta].repaint();
|
this.tableau[ligneDelta-1][collonneDelta].repaint();
|
||||||
}
|
}
|
||||||
if(ligneDelta<tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta].getVoisin()>0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){
|
if(ligneDelta<tableau.length-1 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta+1][collonneDelta].repaint();
|
this.tableau[ligneDelta+1][collonneDelta].repaint();
|
||||||
}
|
}
|
||||||
if(collonneDelta<tableau[ligneDelta].length-1 && this.tableau[ligneDelta][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta][collonneDelta+1].getVoisin()>0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){
|
if(collonneDelta<tableau[ligneDelta].length-1 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta][collonneDelta+1].repaint();
|
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){
|
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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta][collonneDelta-1].repaint();
|
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){
|
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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta-1][collonneDelta-1].repaint();
|
this.tableau[ligneDelta-1][collonneDelta-1].repaint();
|
||||||
}
|
}
|
||||||
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta-1].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta-1].getVoisin()>0 && this.tableau[ligneDelta+1][collonneDelta-1].getBombe()==false){
|
if(collonneDelta>0 && ligneDelta<this.tableau.length-1 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta+1][collonneDelta-1].repaint();
|
this.tableau[ligneDelta+1][collonneDelta-1].repaint();
|
||||||
}
|
}
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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){
|
if(collonneDelta<this.tableau[ligneDelta].length-1 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta-1][collonneDelta+1].repaint();
|
this.tableau[ligneDelta-1][collonneDelta+1].repaint();
|
||||||
}
|
}
|
||||||
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && this.tableau[ligneDelta+1][collonneDelta+1].getVisibiliter()==false && this.tableau[ligneDelta+1][collonneDelta+1].getVoisin()>0 && this.tableau[ligneDelta+1][collonneDelta+1].getBombe()==false){
|
if(collonneDelta<this.tableau[ligneDelta].length-1 && ligneDelta<this.tableau.length-1 && 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].setVisibiliter(true);
|
||||||
this.tableau[ligneDelta+1][collonneDelta+1].repaint();
|
this.tableau[ligneDelta+1][collonneDelta+1].repaint();
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -1,25 +1,42 @@
|
|||||||
|
//Tom Monin et Clément Martins
|
||||||
|
//Class pour des fonction static de jeu
|
||||||
|
//V2
|
||||||
|
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.awt.event.*;
|
import java.awt.event.*;
|
||||||
|
|
||||||
public class plateau{
|
public class plateau{
|
||||||
|
//-------------------------Fonction plaçant les bombes aléatoirement------------------------
|
||||||
|
|
||||||
public static void setAllBombe(int nombre, int ligne, int collonne, Case[][] tableau0){
|
public static void setAllBombe(int nombre, int ligne, int collonne, Case[][] tableau0){
|
||||||
Random rand = new Random();
|
Random rand = new Random();
|
||||||
|
//on répète le nombre de fois le nombre de bombe a placer
|
||||||
for(int i=0; i<nombre; i++){
|
for(int i=0; i<nombre; i++){
|
||||||
|
//on genere 2 chiffre aléatoire(ligne et collonne)
|
||||||
int x=rand.nextInt(ligne);
|
int x=rand.nextInt(ligne);
|
||||||
int y=rand.nextInt(collonne);
|
int y=rand.nextInt(collonne);
|
||||||
|
//si il n'y a pas de bombe ici
|
||||||
if(tableau0[x][y].getBombe()==false){
|
if(tableau0[x][y].getBombe()==false){
|
||||||
|
//on en place une
|
||||||
tableau0[x][y].setBombe();
|
tableau0[x][y].setBombe();
|
||||||
}else{
|
}else{
|
||||||
|
//autrement nous recomencerons 1 fois de plus le tirage pour ne pas modifier le nombre de bombe
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//-------------------------Fonction mettant le nombre de bombe voisin a chaque Case------------------
|
||||||
|
|
||||||
public static void setAllVoisin(Case[][] tableau0){
|
public static void setAllVoisin(Case[][] tableau0){
|
||||||
|
//nous parcourons le tableau du jeu
|
||||||
for(int i=0; i<tableau0.length; i++){
|
for(int i=0; i<tableau0.length; i++){
|
||||||
for(int t=0; t<tableau0[i].length; t++){
|
for(int t=0; t<tableau0[i].length; t++){
|
||||||
int voisin=0;
|
int voisin=0;
|
||||||
|
//nous regardons dans les cases adjacentes(si elles existe) si elle sont des bombes
|
||||||
if(i>0){
|
if(i>0){
|
||||||
if(tableau0[i-1][t].getBombe()==true){
|
if(tableau0[i-1][t].getBombe()==true){
|
||||||
|
//si elle le sont alors nous augmentons le nombre de voisin
|
||||||
voisin++;
|
voisin++;
|
||||||
}
|
}
|
||||||
if(t>0){
|
if(t>0){
|
||||||
@ -58,36 +75,57 @@ public class plateau{
|
|||||||
voisin++;
|
voisin++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//finalement nous mettons pour cette case sont nombre de voisin
|
||||||
tableau0[i][t].setVoisin(voisin);
|
tableau0[i][t].setVoisin(voisin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------Fonction qui verifie l'etat de jeu(perdu, gagner)------------------------
|
||||||
|
|
||||||
public static int etatDeVictoire(Case[][] tableau0){
|
public static int etatDeVictoire(Case[][] tableau0){
|
||||||
|
//variable pour une condition
|
||||||
int condition=0;
|
int condition=0;
|
||||||
|
//nous parcourons le tableau du jeu
|
||||||
for(int i=0; i<tableau0.length; i++){
|
for(int i=0; i<tableau0.length; i++){
|
||||||
for(int t=0; t<tableau0[i].length; t++){
|
for(int t=0; t<tableau0[i].length; t++){
|
||||||
|
//si une case n'est pas visible mais que ce n'est pas une bombe
|
||||||
if(tableau0[i][t].getVisibiliter()==false && tableau0[i][t].getBombe()==false){
|
if(tableau0[i][t].getVisibiliter()==false && tableau0[i][t].getBombe()==false){
|
||||||
|
//nous augmentons la conditions pour montrer que la partie est toujour en cours
|
||||||
condition++;
|
condition++;
|
||||||
}
|
}
|
||||||
|
//si une bombe est visible
|
||||||
if(tableau0[i][t].getVisibiliter()==true && tableau0[i][t].getBombe()==true){
|
if(tableau0[i][t].getVisibiliter()==true && tableau0[i][t].getBombe()==true){
|
||||||
|
//on retourne une valeur représentant la défaite: -1
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
//si une bombe n'est pas susposer comme tel
|
||||||
if(tableau0[i][t].getSuspition2()==false && tableau0[i][t].getBombe()==true){
|
if(tableau0[i][t].getSuspition2()==false && tableau0[i][t].getBombe()==true){
|
||||||
|
//nous augmentons la conditions pour montrer que la partie n'est pas fini
|
||||||
condition++;
|
condition++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//si la partie n'est pas fini
|
||||||
if(condition>0){
|
if(condition>0){
|
||||||
|
//on retourne 0 ici comme une valleur null
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
//sinon le joueur a donc gagner on renvoie 1
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
//-----------------------------------Fonction après victoire/defaite pour enlever les observateur a chaque Case--------------------------------
|
||||||
|
|
||||||
public static void perduGagner(Case[][] tableau0){
|
public static void perduGagner(Case[][] tableau0){
|
||||||
|
//on parcour le tableau du jeu
|
||||||
for(int i=0; i<tableau0.length; i++){
|
for(int i=0; i<tableau0.length; i++){
|
||||||
for(int t=0; t<tableau0[i].length; t++){
|
for(int t=0; t<tableau0[i].length; t++){
|
||||||
|
//on récupere le tableau d'observateur
|
||||||
MouseListener[] tabListener;
|
MouseListener[] tabListener;
|
||||||
tabListener=tableau0[i][t].getMouseListeners();
|
tabListener=tableau0[i][t].getMouseListeners();
|
||||||
|
//que nous parcourons
|
||||||
for(int longeur=0; longeur<=tabListener.length-1; longeur++){
|
for(int longeur=0; longeur<=tabListener.length-1; longeur++){
|
||||||
|
//on enleve a chaque case les observateur 1 par 1
|
||||||
tableau0[i][t].removeMouseListener(tabListener[longeur]);
|
tableau0[i][t].removeMouseListener(tabListener[longeur]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user