entourage case 0 visible
This commit is contained in:
parent
63642b7146
commit
bd8d725cd1
17
Case.java
17
Case.java
@ -33,6 +33,8 @@ public class Case extends JPanel {
|
|||||||
|
|
||||||
// Méthode qui permet de montrer la case, et de la considérer comme déminée
|
// Méthode qui permet de montrer la case, et de la considérer comme déminée
|
||||||
public void setVisible(){
|
public void setVisible(){
|
||||||
|
|
||||||
|
if (this.visible==false){
|
||||||
this.visible = true;
|
this.visible = true;
|
||||||
this.deminee = true;
|
this.deminee = true;
|
||||||
|
|
||||||
@ -47,6 +49,10 @@ public class Case extends JPanel {
|
|||||||
}
|
}
|
||||||
// Mise à jour de l'affichage de la case
|
// Mise à jour de l'affichage de la case
|
||||||
this.updateUI();
|
this.updateUI();
|
||||||
|
if (this.getEntourage() == 0) {
|
||||||
|
this.grille.setEntourageVisible(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Méthode permettant de dire si la case est cachée ou visible
|
// Méthode permettant de dire si la case est cachée ou visible
|
||||||
@ -69,10 +75,19 @@ public class Case extends JPanel {
|
|||||||
this.entourage=entourage;
|
this.entourage=entourage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Renvoi l'entourage de la case
|
||||||
|
public int getEntourage(){
|
||||||
|
return this.entourage;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Permet d'acceder à la grille sur laquelle est la case
|
||||||
|
public Grille getGrille(){
|
||||||
|
return this.grille;
|
||||||
|
}
|
||||||
|
|
||||||
// Méthode pour savoir si le joueur pense que la case est minée
|
// Méthode pour savoir si le joueur pense que la case est minée
|
||||||
public void setReperee(boolean reperee){
|
public void setReperee(boolean reperee){
|
||||||
this.reperee=reperee;
|
this.reperee=reperee;
|
||||||
this.add(new Etoile(this.getSize()), BorderLayout.CENTER);
|
|
||||||
if ((reperee)&&(minee)){
|
if ((reperee)&&(minee)){
|
||||||
this.deminee=true;
|
this.deminee=true;
|
||||||
}
|
}
|
||||||
|
62
Grille.java
62
Grille.java
@ -6,6 +6,8 @@ public class Grille extends JPanel {
|
|||||||
private EtatPartie banniere;
|
private EtatPartie banniere;
|
||||||
private Dimension grilleSize=new Dimension(0,0);
|
private Dimension grilleSize=new Dimension(0,0);
|
||||||
private Case[] plateau;
|
private Case[] plateau;
|
||||||
|
private int lignes;
|
||||||
|
private int colonnes;
|
||||||
private int taille;
|
private int taille;
|
||||||
private int mines;
|
private int mines;
|
||||||
private int minesLeft;
|
private int minesLeft;
|
||||||
@ -20,6 +22,8 @@ public class Grille extends JPanel {
|
|||||||
GridLayout damier = new GridLayout(lignes,colonnes);
|
GridLayout damier = new GridLayout(lignes,colonnes);
|
||||||
this.setLayout(damier);
|
this.setLayout(damier);
|
||||||
this.setSize(grilleSize);
|
this.setSize(grilleSize);
|
||||||
|
this.lignes=lignes;
|
||||||
|
this.colonnes=colonnes;
|
||||||
this.taille=lignes*colonnes;
|
this.taille=lignes*colonnes;
|
||||||
this.mines=mines;
|
this.mines=mines;
|
||||||
this.banniere=banniere;
|
this.banniere=banniere;
|
||||||
@ -82,7 +86,7 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Mine en bas à gauche
|
// Mine en bas à gauche
|
||||||
if ((i!=taille-colonnes)&&(i%colonnes!=0)){
|
if ((i<=taille-colonnes)&&(i%colonnes!=0)){
|
||||||
for (int j=0;j<mines;j++){
|
for (int j=0;j<mines;j++){
|
||||||
if (caseMine[j]==i+colonnes-1){
|
if (caseMine[j]==i+colonnes-1){
|
||||||
entourage+=1;
|
entourage+=1;
|
||||||
@ -160,4 +164,60 @@ public class Grille extends JPanel {
|
|||||||
}
|
}
|
||||||
this.banniere.setMinesLeft(this.minesLeft);
|
this.banniere.setMinesLeft(this.minesLeft);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Méthode pour rendre visibles les cases autour d'un 0
|
||||||
|
public void setEntourageVisible(Case panel){
|
||||||
|
for(int i=0; i<this.taille;i++){
|
||||||
|
if (plateau[i]==panel){
|
||||||
|
// Mine au dessus à droite
|
||||||
|
if ((i>colonnes)&&(i%colonnes!=colonnes-1)){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i-colonnes+1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine au dessus à gauche
|
||||||
|
if ((i>colonnes)&&(i%colonnes!=0)){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i-colonnes-1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine en dessous à droite
|
||||||
|
if ((i<taille-colonnes)&&(i%colonnes!=colonnes-1)){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i+colonnes+1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine en bas à gauche
|
||||||
|
if ((i<taille-colonnes)&&(i%colonnes!=0)){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i+colonnes-1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine au dessus
|
||||||
|
if (i>colonnes){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i-colonnes].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine en dessous
|
||||||
|
if (i<taille-colonnes){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i+colonnes].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine à droite
|
||||||
|
if (i%colonnes!=colonnes-1){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i+1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Mine à gauche
|
||||||
|
if (i%colonnes!=0){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
plateau[i-1].setVisible();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,9 @@ public class ListenerCase implements MouseListener{
|
|||||||
// Si le joueur clique droit, la case sera marquée
|
// Si le joueur clique droit, la case sera marquée
|
||||||
if ((evenement.getButton() == MouseEvent.BUTTON3)&&(panel.getVisible()==false)) {
|
if ((evenement.getButton() == MouseEvent.BUTTON3)&&(panel.getVisible()==false)) {
|
||||||
// Au premier click, on place une étoile pour indiquer la présence d'une mine
|
// Au premier click, on place une étoile pour indiquer la présence d'une mine
|
||||||
|
// TODO: Regarder switch
|
||||||
if (this.marquage==0){
|
if (this.marquage==0){
|
||||||
|
panel.add(new Etoile(panel.getSize()), BorderLayout.CENTER);
|
||||||
panel.setReperee(true);
|
panel.setReperee(true);
|
||||||
this.marquage=1;
|
this.marquage=1;
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,5 @@ public class MineLeft extends JComponent {
|
|||||||
chiffre.setFont(font);
|
chiffre.setFont(font);
|
||||||
chiffre.setColor(new Color(0, 22, 236));
|
chiffre.setColor(new Color(0, 22, 236));
|
||||||
chiffre.drawString(Integer.toString(this.minesLeft),banniereSize.width*1/5,banniereSize.height*2/3);
|
chiffre.drawString(Integer.toString(this.minesLeft),banniereSize.width*1/5,banniereSize.height*2/3);
|
||||||
System.out.println(this.getSize());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user