compteur entourage fonctionnel

This commit is contained in:
Haïssous Kayyissa 2022-04-28 17:57:18 +02:00
parent 6708bb15e4
commit d4f8e33c51
3 changed files with 75 additions and 28 deletions

View File

@ -1,31 +1,42 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
public class Case extends JComponent { public class Case extends JComponent {
private JPanel panel = new JPanel(); private JPanel panel = new JPanel();
private int entourage=0;
private boolean visible=false;
private boolean minee=false;
public Case (Dimension caseSize, boolean visible, boolean minee){ public Case(Dimension caseSize, boolean visible, boolean minee, int entourage) {
super(); super();
this.panel.setSize(caseSize); this.panel.setSize(caseSize);
if (visible==false){ this.entourage=entourage;
this.visible=visible;
this.minee=minee;
if (this.visible == false) {
Color gray2 = new Color(70, 70, 70); Color gray2 = new Color(70, 70, 70);
this.panel.setBackground(gray2); this.panel.setBackground(gray2);
} else if (visible==true){ } else if (this.visible == true) {
Color gray1 = new Color(80, 80, 80); Color gray1 = new Color(80, 80, 80);
this.panel.setBackground(gray1); this.panel.setBackground(gray1);
if (minee==true){ if (this.minee == true) {
Color rose = new Color(236, 0, 140); Color rose = new Color(236, 0, 140);
this.panel.setBackground(rose); this.panel.setBackground(rose);
System.out.println("J'ai miné ! "); } else if (this.entourage>0){
System.out.println(""+ this.entourage);
} }
} }
} }
@Override
protected void paintComponent(Graphics pinceau) {
System.out.println("coucou");
}
public JPanel getCase() { public JPanel getCase() {
return this.panel; return this.panel;
} }
} }

View File

@ -40,9 +40,6 @@ public class Grille extends JComponent {
} }
} }
} }
for (int i=0;i<mines;i++){
System.out.println(""+caseMine[i]);
}
// Comme pour savoir si une case est visible, mais pour quand elle est minée // Comme pour savoir si une case est visible, mais pour quand elle est minée
boolean[] minee = new boolean[lignes*colonnes]; boolean[] minee = new boolean[lignes*colonnes];
@ -54,9 +51,48 @@ public class Grille extends JComponent {
} }
} }
// Connaître le nombre de mines autour de la case
int[] entourage = new int[lignes*colonnes];
for (int i=0;i<lignes*colonnes;i++){
for (int j=0;j<mines;j++){
// Si une mine est à droite
if (caseMine[j]==i+1){
entourage[i]+=1;
}
// Si une mine est à gauche
if (caseMine[j]==i-1){
entourage[i]+=1;
}
// Si une mine est au dessus
if (caseMine[j]==i-colonnes){
entourage[i]+=1;
}
// Si une mine est au dessus à droite
if (caseMine[j]==i-colonnes+1){
entourage[i]+=1;
}
// Si une mine est au dessus à gauche
if (caseMine[j]==i-colonnes-1){
entourage[i]+=1;
}
// Si une mine est en dessous
if (caseMine[j]==i+colonnes){
entourage[i]+=1;
}
// Si une mine est en dessous à droite
if (caseMine[j]==i+colonnes+1){
entourage[i]+=1;
}
// Si une mine est en dessous à gauche
if (caseMine[j]==i+colonnes-1){
entourage[i]+=1;
}
}
}
// Affichage des cases // Affichage des cases
for (int i=0;i<lignes*colonnes;i++){ for (int i=0;i<lignes*colonnes;i++){
Case panel = new Case(caseSize,visible[i], minee[i]); Case panel = new Case(caseSize,visible[i],minee[i],entourage[i]);
this.grille.add(panel.getCase()); this.grille.add(panel.getCase());
} }
} }

View File

@ -1,6 +1,6 @@
public class Test { public class Test {
public static void main(String[] args) { public static void main(String[] args) {
Grille grille=new Grille(20,25,15); Grille grille=new Grille(20,25,50);
new FrameJeu(grille, 15); new FrameJeu(grille, 15);
} }
} }