entourage fonctionnel (décalage des lignes fixé)
This commit is contained in:
parent
64f3f55a97
commit
79df7ffb1a
@ -27,7 +27,6 @@ public class Case extends JComponent {
|
|||||||
Color rose = new Color(236, 0, 140);
|
Color rose = new Color(236, 0, 140);
|
||||||
this.panel.setBackground(rose);
|
this.panel.setBackground(rose);
|
||||||
} else if (this.entourage>0){
|
} else if (this.entourage>0){
|
||||||
System.out.println(""+ this.entourage);
|
|
||||||
this.panel.add(new Chiffre(entourage,caseSize));
|
this.panel.add(new Chiffre(entourage,caseSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,5 @@ public class Chiffre extends JComponent {
|
|||||||
Color jaune = new Color(236, 214, 0);
|
Color jaune = new Color(236, 214, 0);
|
||||||
chiffre.setColor(jaune);
|
chiffre.setColor(jaune);
|
||||||
chiffre.drawString(Integer.toString(this.entourage),caseSize.width*2/5,caseSize.height*3/5);
|
chiffre.drawString(Integer.toString(this.entourage),caseSize.width*2/5,caseSize.height*3/5);
|
||||||
System.out.println(""+caseSize);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
228
Grille.java
228
Grille.java
@ -42,12 +42,6 @@ public class Grille extends JComponent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Affichage console des emplacements des mines
|
|
||||||
for (int i=0;i<mines;i++){
|
|
||||||
System.out.println(""+caseMine[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// On place maintenant les mines sur la plateau
|
// On place maintenant les mines sur la plateau
|
||||||
boolean[] minee = new boolean[lignes*colonnes];
|
boolean[] minee = new boolean[lignes*colonnes];
|
||||||
for (int i=0; i<lignes*colonnes;i++){
|
for (int i=0; i<lignes*colonnes;i++){
|
||||||
@ -61,42 +55,214 @@ public class Grille extends JComponent {
|
|||||||
// Connaître le nombre de mines autour de la case
|
// Connaître le nombre de mines autour de la case
|
||||||
int[] entourage = new int[lignes*colonnes];
|
int[] entourage = new int[lignes*colonnes];
|
||||||
for (int i=0;i<lignes*colonnes;i++){
|
for (int i=0;i<lignes*colonnes;i++){
|
||||||
for (int j=0;j<mines;j++){
|
// Gestion des coins
|
||||||
// Si une mine est à droite
|
// Coin supérieur droit
|
||||||
if (caseMine[j]==i+1){
|
if (i==colonnes-1){
|
||||||
entourage[i]+=1;
|
for (int j=0;j<mines;j++){
|
||||||
|
// Si une mine est à gauche
|
||||||
|
if (caseMine[j]==i-1){
|
||||||
|
entourage[i]+=1;
|
||||||
|
}
|
||||||
|
// Si une mine est en dessous
|
||||||
|
if (caseMine[j]==i+colonnes){
|
||||||
|
entourage[i]+=1;
|
||||||
|
}
|
||||||
|
// Si une mine est en dessous à gauche
|
||||||
|
if (caseMine[j]==i+colonnes-1){
|
||||||
|
entourage[i]+=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Si une mine est à gauche
|
}
|
||||||
if (caseMine[j]==i-1){
|
// Coin suppérieur gauche
|
||||||
entourage[i]+=1;
|
else if (i==0){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
// Si une mine est à droite
|
||||||
|
if (caseMine[j]==i+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 au dessus
|
}
|
||||||
if (caseMine[j]==i-colonnes){
|
// Coin inférieur droit
|
||||||
entourage[i]+=1;
|
else if (i==lignes*colonnes-1){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
// 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 à gauche
|
||||||
|
if (caseMine[j]==i-colonnes-1){
|
||||||
|
entourage[i]+=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Si une mine est au dessus à droite
|
}
|
||||||
if (caseMine[j]==i-colonnes+1){
|
// Coin inférieur gauche
|
||||||
entourage[i]+=1;
|
else if (i==lignes*colonnes-colonnes){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
// Si une mine est à droite
|
||||||
|
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){
|
// Si la mine est tout en haut
|
||||||
entourage[i]+=1;
|
else if (i<colonnes){
|
||||||
|
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 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Si une mine est en dessous
|
}
|
||||||
if (caseMine[j]==i+colonnes){
|
// Si la mine est tout en bas
|
||||||
entourage[i]+=1;
|
else if (i>lignes*colonnes-colonnes){ // Vérifier la condition
|
||||||
|
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 à droite
|
}
|
||||||
if (caseMine[j]==i+colonnes+1){
|
// Si la mine est tout à droite
|
||||||
entourage[i]+=1;
|
else if (i%colonnes==colonnes-1){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
// 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 à 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 à gauche
|
||||||
|
if (caseMine[j]==i+colonnes-1){
|
||||||
|
entourage[i]+=1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Si une mine est en dessous à gauche
|
}
|
||||||
if (caseMine[j]==i+colonnes-1){
|
// Si la mine est tout à gauche
|
||||||
entourage[i]+=1;
|
else if (i%colonnes==0){
|
||||||
|
for (int j=0;j<mines;j++){
|
||||||
|
// Si une mine est à droite
|
||||||
|
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 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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// On place les cases à leur état actuel dans la grille
|
||||||
AffichePlateau(lignes*colonnes, caseSize, entourage, visible, minee);
|
AffichePlateau(lignes*colonnes, caseSize, entourage, visible, minee);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user