Marquage finalisé, cases non clicables, problème d'affichage fixé

This commit is contained in:
Haïssous Kayyissa 2022-05-03 15:32:40 +02:00
parent cecd279029
commit fd598eeb07
4 changed files with 36 additions and 15 deletions

View File

@ -27,7 +27,6 @@ public class Grille extends JPanel {
Random rand = new Random(); Random rand = new Random();
// On initialise les emplacements des mines // On initialise les emplacements des mines
caseMine[0] = rand.nextInt(lignes*colonnes); caseMine[0] = rand.nextInt(lignes*colonnes);
System.out.println("mine 0 : "+ caseMine[0]);
for (int i=1;i<mines;i++){ for (int i=1;i<mines;i++){
caseMine[i] = rand.nextInt(lignes*colonnes); caseMine[i] = rand.nextInt(lignes*colonnes);
// On vérifie que la case n'a pas déjà été minée, auquel cas on change de case // On vérifie que la case n'a pas déjà été minée, auquel cas on change de case
@ -35,19 +34,10 @@ public class Grille extends JPanel {
if (caseMine[i]==caseMine[j]){ if (caseMine[i]==caseMine[j]){
caseMine[i] = rand.nextInt(lignes*colonnes); caseMine[i] = rand.nextInt(lignes*colonnes);
j=-1; j=-1;
System.out.println("Nouvelle case qu'on essaye de miner :"+ caseMine[i]);
} else if (caseMine[i]!=caseMine[j]){
System.out.println(""+ caseMine[i]+" != "+ caseMine[j]);
} }
} }
System.out.println("Mine posee :"+ "("+i+")"+caseMine[i]);
} }
/* Affichage de l'mplacement 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++){
@ -277,7 +267,6 @@ public class Grille extends JPanel {
protected void AfficherPlateau(int taille, Dimension caseSize, int[] entourage, boolean[] minee){ protected void AfficherPlateau(int taille, Dimension caseSize, int[] entourage, boolean[] minee){
for (int i=0;i<taille;i++){ for (int i=0;i<taille;i++){
this.plateau[i]= new Case(caseSize,minee[i],entourage[i]); this.plateau[i]= new Case(caseSize,minee[i],entourage[i]);
this.plateau[i].setVisible();
this.add(this.plateau[i].getCase()); this.add(this.plateau[i].getCase());
} }
} }

View File

@ -2,11 +2,12 @@ import java.awt.event.*;
import java.awt.*; import java.awt.*;
public class Listener implements MouseListener{ public class Listener implements MouseListener{
private int marquage=0;
@Override @Override
public void mouseClicked(MouseEvent evenement){ public void mouseClicked(MouseEvent evenement){
Case panel = (Case)evenement.getSource(); Case panel = (Case)evenement.getSource();
if ((evenement.getButton() == MouseEvent.BUTTON1)&&(panel.getVisible()==false)){ if ((evenement.getButton() == MouseEvent.BUTTON1)&&(panel.getVisible()==false)&&(this.marquage==0)){
panel.setVisible(); panel.setVisible();
panel.getCase(); panel.getCase();
if (panel.getMine()==true){ if (panel.getMine()==true){
@ -14,9 +15,22 @@ public class Listener implements MouseListener{
} }
} }
if (evenement.getButton() == MouseEvent.BUTTON3) { if (evenement.getButton() == MouseEvent.BUTTON3) {
if (this.marquage==0){
panel.add(new Etoile(panel.getSize()), BorderLayout.CENTER); panel.add(new Etoile(panel.getSize()), BorderLayout.CENTER);
this.marquage=1;
}
else if (this.marquage==1){
panel.removeAll();
panel.add(new Sus(panel.getSize()), BorderLayout.CENTER);
this.marquage=2;
}
else if (this.marquage==2){
panel.removeAll();
this.marquage=0;
}
panel.updateUI(); panel.updateUI();
System.out.println("Marquage");
System.out.println(""+this.marquage);
} }
} }
public void mouseEntered(MouseEvent evenement){ public void mouseEntered(MouseEvent evenement){

18
Sus.java Normal file
View File

@ -0,0 +1,18 @@
import javax.swing.JComponent;
import java.awt.*;
public class Sus extends JComponent {
private Dimension caseSize;
public Sus(Dimension caseSize) {
super();
this.caseSize=caseSize;
}
@Override
protected void paintComponent(Graphics pinceau) {
Graphics chiffre = pinceau.create();
Font font = new Font("Arial", Font.BOLD, caseSize.width*3/5);
chiffre.setFont(font);
chiffre.setColor(new Color(236, 0, 140));
chiffre.drawString("?",caseSize.width*3/10,caseSize.height*4/5);
}
}

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(4,4,15); Grille grille=new Grille(10,15,15);
new FrameJeu(grille, 15); new FrameJeu(grille, 15);
} }
} }