compteur entourage fonctionnel
This commit is contained in:
parent
6708bb15e4
commit
d4f8e33c51
25
Case.java
25
Case.java
@ -1,31 +1,42 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
|
||||
public class Case extends JComponent {
|
||||
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();
|
||||
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);
|
||||
this.panel.setBackground(gray2);
|
||||
} else if (visible==true){
|
||||
} else if (this.visible == true) {
|
||||
Color gray1 = new Color(80, 80, 80);
|
||||
this.panel.setBackground(gray1);
|
||||
if (minee==true){
|
||||
if (this.minee == true) {
|
||||
Color rose = new Color(236, 0, 140);
|
||||
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() {
|
||||
return this.panel;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
44
Grille.java
44
Grille.java
@ -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
|
||||
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
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user