From a2836b2f085b3fe56a8280671c6fa25c51bce3f5 Mon Sep 17 00:00:00 2001 From: martins Date: Thu, 28 Apr 2022 21:31:03 +0200 Subject: [PATCH] ajout de commentaires --- CASE/Case.class | Bin 2538 -> 2538 bytes CASE/Case.java | 49 ++++++-- CASE/main_ex.class | Bin 1166 -> 1166 bytes CASE/main_ex.java | 9 +- CASE/observateurCase.class | Bin 7449 -> 3149 bytes CASE/observateurCase.java | 225 ++++++++----------------------------- CASE/plateau.class | Bin 1680 -> 1680 bytes CASE/plateau.java | 38 +++++++ 8 files changed, 130 insertions(+), 191 deletions(-) diff --git a/CASE/Case.class b/CASE/Case.class index d615a6b20603fc3ce02f3c8d06831a9d251ec54b..81cb658e7f18fb5309c2c45b69892c0622a46e35 100644 GIT binary patch delta 246 zcmWNJUn@g#9EYFp+V31kCOKxxpE4)fPO`R!WO6|YNz`N{(k{eEO4B44-hjT>-h;Ao z;{~|!I@EHh-1_#pc`lyk(+NA_>!uqINs=aDkX|x`4B3W>7@@!@i;QW*#cl#eq%TI3 zMpOFbDybaZRXm<)58t}?2=`V9Q({sW0eD{9CFVQPaMu!%H07B)d8Z}cJm_bT{RgXoEF}N{ delta 246 zcmWNKPb)-m7=@pA^1IiSVYs-6m@#T*t~8k>8ViY-8KSrtjX!CY_KJmtFQ9krJ1A2& zK7ftSp(aaZ>+Nh#r}LcC4ZGoM!(|8QAw$3r0}K zZd$+GdU}RFW{t@bF{hDNk$J6qu`5`ksP|qui1Asl?M3Z)Yrzt|RE$~HKkKe)?3bka zmiXyZd&7`T`q{GUZF1~TWS13cmefgT@W38V?9<_Z4-Wa^h+mE+MIsqaB+seTIFlw# Yx#nE%XvrfN^30{Yb0y#0=x31o2d7RcEC2ui diff --git a/CASE/Case.java b/CASE/Case.java index 8728ada..b1d1d56 100644 --- a/CASE/Case.java +++ b/CASE/Case.java @@ -1,26 +1,36 @@ // Tom Monin et Clément Martins -// paintChoix V1 -// class pour l'affichage de la selection des lignes, collonnes et nombre de mines +// paintChoix V3 +// class représentant une case dans la partie import java.awt.*; import javax.swing.*; import javax.swing.JComponent; public class Case extends JComponent{ - private boolean visibilite; - private boolean bombe; - private int voisin; - private int suspition; + //Etat de la case: + private boolean visibilite; //Visible ou pas + private boolean bombe; //Miner ou pas + 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; + + //Constructeur de la Case public Case(){ - this.visibilite=false; - this.bombe=false; - this.voisin=0; - this.suspition=0; - this.interogation= Toolkit.getDefaultToolkit().getImage("./IMAGE/pointintero.png"); + //nous initialisons les valeurs + this.visibilite=false; //la visibiler est fausse donc la case est cacher + this.bombe=false; // ce n'est pas une bombe + 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.etoile= Toolkit.getDefaultToolkit().getImage("./IMAGE/etoile.png"); this.imgboombe= Toolkit.getDefaultToolkit().getImage("./IMAGE/bombe.png"); } + + // Nous mettons les getter/setter + public void setVisibiliter(boolean trueorfalse){ this.visibilite=trueorfalse; } @@ -46,6 +56,7 @@ public class Case extends JComponent{ 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(){ if(this.suspition==1){ return true; @@ -59,6 +70,8 @@ public class Case extends JComponent{ public int getVoisin(){ return this.voisin; } + + //on paint la case en fonction de ses attribut et donc son etat @Override protected void paintComponent(Graphics pinceau) { // 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.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){ + //on dessinne un rectangle gris sur un fond noir secondPinceau.setColor(new Color(0,0,0)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); secondPinceau.setColor(new Color(100, 100, 100)); 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){ + //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); } + //si on suspecte que on ne sais pas 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); } } + //si la case est afficher(visible) if(this.visibilite==true){ + //on dessine un rectangle blanc sur un fond noir secondPinceau.setColor(new Color(0,0,0)); secondPinceau.fillRect(0, 0, this.getWidth(), this.getHeight()); secondPinceau.setColor(new Color(255, 255, 255)); secondPinceau.fillRect(this.getWidth()/20, this.getHeight()/20, this.getWidth()/20*18, this.getHeight()/20*18); secondPinceau.setColor(new Color(255, 0, 0)); + //si la case a au moins 1 voisin qui est une bombe if(this.voisin>0){ + //on ecrit le nombre de voisin que elle a secondPinceau.drawString(String.valueOf(voisin), this.getWidth()/2, this.getHeight()/2); } + //si la case est une bombe if(this.bombe==true){ + //on remplace le rectangle blanc par un rectangle rouge secondPinceau.setColor(new Color(255,0,125)); 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); } } diff --git a/CASE/main_ex.class b/CASE/main_ex.class index 3d3eba0809e3a0fca6e4372c20d6e72fc06a28ca..7bf11f89d252d1412f3f8ba9a266f33b17ea837b 100644 GIT binary patch delta 53 zcmeCE%%UmD;LIS+;KLxp5XvCSkisC(P{W|W&# delta 53 zcmeCE%%Um5;LIS&;KLxr5XvCUkisCtP{Sb0&No!B0`Ln4iXMlMaiQsM17RitZ}f`!8!*G4jLW292IqalqQ-T zyyAQtBDAnEOly=jHic<-oXsIRLUe|B)ezjjcl4bRbK=7NOrE!Xei>UV#gtg$4oZ2! zvX!pP4sXHE*DT%iShhJx^15ZaW4}R{rPujhVp)hjOFug-Z?e-ez?Kk$mR$^~)WMNM zsdqyRTi#-~A#Ze8r4LzZSax~JOPl(bS~nCCz;hyWAD+{ZwUUyx3s@){7O#v&!t%_I zfy&Co^2G=Wt)dHv@Qi+Qna8u@R8Z-dm+u9FChe%(C=?bdO^g*P*rIYtmHJQ}kEy_M zr9MeH=M?xYOSqukevr;zspWJlE*H!(GDhaJO)7q&HpQn(?w}r*F1fZTILglX|r6 z`s#Hv!D$V}cbbWt401;kv4~+)tw|UlWk%RzE-`AZu-EwP^MdU6lDzE=a3FiLMTC9& zecF9md|DfQx_r8QW%j7o0OdOPL;76@{qgfOExke@9!Moh6IThJrFP~y|9s|pan-^c zXJ{5@`Yg_plIk2MQ5qPUnJ0G^=aZ7MN1W6wjysDpQBqdbDNURH(;!`0RdtVhT+Mhz zZBN{}#{;SFABITMtdNHug&c|3%ub&ZJ0rdGh&vgtc}n`nLtOe?$UtdTc5U`(e&Ids z)B9S04`|lH?BgSyKIX6{`)5AYihRZdpYs=A@PNa{GG^BDrP<6^rkA7U2*=D>zBU&* yZf^07`I8goA2QxLPI?`j^7=F;Zk1w$n|<2!;!QrC{`2(sBz;Yh(GI$4TmCQX8tSY7 literal 7449 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 diff --git a/CASE/observateurCase.java b/CASE/observateurCase.java index 84431ef..3030036 100644 --- a/CASE/observateurCase.java +++ b/CASE/observateurCase.java @@ -1,6 +1,6 @@ //Tom Monin et Clément Martins -// observateurChoix V1 -//Class pour la selection du nombre de collone et ligne et de Mine a la souris +// observateurChoix V4 +//Class de l'observateur des Cases import java.awt.*; import java.awt.event.*; import javax.swing.*; @@ -16,29 +16,41 @@ public class observateurCase implements MouseListener{ } @Override public void mouseClicked(MouseEvent evenement){ + //si on clique gauche 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){ + //nous la rendons visible et la reafichons this.tableau[this.ligne][this.collonne].setVisibiliter(true); 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){ this.cliqueEvident(this.ligne, this.collonne); } + //nous testons si le joueur a gagner/perdu int resultat=plateau.etatDeVictoire(this.tableau); + //si il perd if(resultat==-1){ plateau.perduGagner(this.tableau); } + //si il gagne if(resultat==1){ plateau.perduGagner(this.tableau); } } } + //si clique droit 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].repaint(); + //nous testons si le joeur a gagner/perdu int resultat=plateau.etatDeVictoire(this.tableau); + //si perdu if(resultat==-1){ System.out.println("perdu"); } + //si gagner if(resultat==1){ System.out.println("gagner"); } @@ -59,223 +71,80 @@ public class observateurCase implements MouseListener{ 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){ + //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); + //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){ - 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){ - this.diaghautgauche(ligneDelta-1, collonneDelta-1); + 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.gauche(ligneDelta, collonneDelta-1); + 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.diaghautdroite(ligneDelta-1, collonneDelta+1); + 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].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(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(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); - } - } - private void bas(int ligneDelta, int collonneDelta){ - this.tableau[ligneDelta][collonneDelta].setVisibiliter(true); - this.tableau[ligneDelta][collonneDelta].repaint(); - this.affichageVoisinEvident(ligneDelta, 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(collonneDelta0 && 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(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-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(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 && 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(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 && 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 && 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){ + //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].repaint(); } - if(ligneDelta0 && this.tableau[ligneDelta+1][collonneDelta].getBombe()==false){ + if(ligneDelta0){ this.tableau[ligneDelta+1][collonneDelta].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta].repaint(); } - if(collonneDelta0 && this.tableau[ligneDelta][collonneDelta+1].getBombe()==false){ + 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].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].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].repaint(); } - if(collonneDelta>0 && ligneDelta0 && this.tableau[ligneDelta+1][collonneDelta-1].getBombe()==false){ + 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].getBombe()==false){ + 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].getBombe()==false){ + if(collonneDelta0){ this.tableau[ligneDelta+1][collonneDelta+1].setVisibiliter(true); this.tableau[ligneDelta+1][collonneDelta+1].repaint(); } diff --git a/CASE/plateau.class b/CASE/plateau.class index 0e1c9e5adac0780e3d48c1da6a3f5ec7a073b0b4..91e72cce9e6532be0302815d445141d95b904b00 100644 GIT binary patch delta 280 zcmWlTF-t-L6oo%uDJeWciKuLOMQK)8goS46U_~_uO=4Iml|&SU5GaH+)DQ^58wC3S zK|=)5COG#4L~w0t>MwNU!o6_sx#v3#vtfR;42Ro(F)l3=H>3FQGNnGl7-7bVGf7hW zZKgj1Lt#hFVnjzDvl7fP!MrNS0wI=JWQ!$IdfaD)9INDsaK<`iHn<~7l^D-#QYS%E z#;;Ppk>*{1Ham3K<6GZ74(OBNN335g{x}p5{C0QvE0V>KyN4s~@*EK5 delta 280 zcmWlUJxhX77=|z3Ov`v7{OCiWGV&uK9ZaYwl1kHbC`eapvQ~TVN_y-e^E8_qF diff --git a/CASE/plateau.java b/CASE/plateau.java index 1759351..f6f1840 100644 --- a/CASE/plateau.java +++ b/CASE/plateau.java @@ -1,25 +1,42 @@ +//Tom Monin et Clément Martins +//Class pour des fonction static de jeu +//V2 + + import java.util.*; import java.awt.event.*; public class plateau{ + //-------------------------Fonction plaçant les bombes aléatoirement------------------------ + public static void setAllBombe(int nombre, int ligne, int collonne, Case[][] tableau0){ Random rand = new Random(); + //on répète le nombre de fois le nombre de bombe a placer for(int i=0; i0){ if(tableau0[i-1][t].getBombe()==true){ + //si elle le sont alors nous augmentons le nombre de voisin voisin++; } if(t>0){ @@ -58,36 +75,57 @@ public class plateau{ voisin++; } } + //finalement nous mettons pour cette case sont nombre de voisin tableau0[i][t].setVoisin(voisin); } } } + + //-------------------------------Fonction qui verifie l'etat de jeu(perdu, gagner)------------------------ + public static int etatDeVictoire(Case[][] tableau0){ + //variable pour une condition int condition=0; + //nous parcourons le tableau du jeu for(int i=0; i0){ + //on retourne 0 ici comme une valleur null return 0; } + //sinon le joueur a donc gagner on renvoie 1 return 1; } + //-----------------------------------Fonction après victoire/defaite pour enlever les observateur a chaque Case-------------------------------- + public static void perduGagner(Case[][] tableau0){ + //on parcour le tableau du jeu for(int i=0; i