Correction exercice
Décompressez l’archive fournie ici
package s05.demineur;
public class CaseVide extends CaseAbstraite {
public CaseVide(ITerrainMine terrain, int colonne, int ligne) {
super(terrain, colonne, ligne);
}
public int getValeur() {
return ICase.VIDE;
}
public boolean estMinee() {
return false;
}
public void clic() {
this.devoiler();
ICase[] voisines={ this.getTerrain().get(this.getColonne(), this.getLigne()-1),
this.getTerrain().get(this.getColonne()+1, this.getLigne()-1),
this.getTerrain().get(this.getColonne()+1, this.getLigne()),
this.getTerrain().get(this.getColonne()+1, this.getLigne()+1),
this.getTerrain().get(this.getColonne(), this.getLigne()+1),
this.getTerrain().get(this.getColonne()-1, this.getLigne()+1),
this.getTerrain().get(this.getColonne()-1, this.getLigne()),
this.getTerrain().get(this.getColonne()-1, this.getLigne()-1)};
for (int i=0; i<voisines.length; i++) {
if (voisines[i]!=null) {
voisines[i].propager();
}
}
}
public void propager() {
if (this.estCachee()) {
this.clic();
}
}
}
package s05.demineur;
public class CaseMinee extends CaseAbstraite {
public CaseMinee(ITerrainMine terrain, int c, int l) {
super(terrain, c,l);
}
public int getValeur() {
return ICase.MINEE;
}
public boolean estMinee() {
return true;
}
public void propager() {
}
public void clic() {
this.devoiler();
}
}
package s05.demineur;
public class CaseNumerotee extends CaseVide {
private int valeur;
public CaseNumerotee(ITerrainMine terrain, int colonne, int ligne, int valeur) {
super(terrain, colonne, ligne);
this.valeur = valeur;
}
public int getValeur() {
return this.valeur;
}
public void clic() {
this.devoiler();
}
}