SAE21_2021/ListenerCase.java

53 lines
1.6 KiB
Java
Raw Normal View History

2022-05-04 23:03:02 +02:00
import java.awt.event.*;
import java.awt.*;
public class ListenerCase implements MouseListener{
private int marquage=0;
@Override
// Méthode qui va servir à détecter le click de la souris
public void mouseClicked(MouseEvent evenement){
Case panel = (Case)evenement.getSource();
// Si le joueur clique gauche, tant que la case n'est pas marquée, elle sera révélée
if ((evenement.getButton() == MouseEvent.BUTTON1)&&(panel.getVisible()==false)&&(this.marquage==0)){
panel.setVisible();
if (panel.getMine()==true){
System.out.println("Perdu!");
}
}
// Si le joueur clique droit, la case sera marquée
2022-05-04 23:23:27 +02:00
if ((evenement.getButton() == MouseEvent.BUTTON3)&&(panel.getVisible()==false)) {
2022-05-04 23:03:02 +02:00
// Au premier click, on place une étoile pour indiquer la présence d'une mine
if (this.marquage==0){
2022-05-05 22:29:04 +02:00
panel.setReperee(true);
2022-05-04 23:03:02 +02:00
this.marquage=1;
}
// Au second, on met un point d'interrogation en cas de soupçon pour aider à la réflexion
else if (this.marquage==1){
panel.removeAll();
panel.add(new Doute(panel.getSize()), BorderLayout.CENTER);
this.marquage=2;
}
// Au troisième click on efface tout marquage
else if (this.marquage==2){
2022-05-05 22:29:04 +02:00
panel.setReperee(false);
2022-05-04 23:03:02 +02:00
panel.removeAll();
this.marquage=0;
}
// On met à jour l'affichage de la case cliquée
panel.updateUI();
}
}
// Les autres méthodes de l'interface n'interviennent pas
public void mouseEntered(MouseEvent evenement){
}
public void mouseExited(MouseEvent evenement){
}
public void mousePressed(MouseEvent evenement){
}
public void mouseReleased(MouseEvent evenement){
}
}