2022-05-04 23:03:02 +02:00
|
|
|
import java.awt.event.*;
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* La classe <code>ListenerCase</code> implémente l'interface MouseListener
|
|
|
|
* Elle permet de recharger la case cliquée avec les modifications apportées par l'utilisateur
|
|
|
|
*
|
|
|
|
* @version 1.1
|
|
|
|
* @author Kayyissa Haïssous
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public class ListenerCase implements MouseListener {
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* nombre représentant le marquage sur la case
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
private int marquage = 0;
|
2022-05-04 23:03:02 +02:00
|
|
|
|
2022-05-16 20:19:51 +02:00
|
|
|
@Override
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* Méthode à écrire qui réagit au click de la souris
|
|
|
|
* @param evenement L'évenement de la souris
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public void mouseClicked(MouseEvent evenement) {
|
|
|
|
Case panel = (Case) evenement.getSource();
|
2022-05-17 20:53:21 +02:00
|
|
|
if (panel.getEnJeu()) {
|
|
|
|
// Si le joueur clique gauche, on tente de révéler la case
|
|
|
|
if ((evenement.getButton() == MouseEvent.BUTTON1)&&(!panel.getVisible())&&(!panel.getReperee())){
|
2022-05-16 20:19:51 +02:00
|
|
|
panel.setVisible();
|
2022-05-04 23:03:02 +02:00
|
|
|
}
|
2022-05-16 20:19:51 +02:00
|
|
|
// Si le joueur clique droit, la case sera marquée
|
|
|
|
if ((evenement.getButton() == MouseEvent.BUTTON3) && (panel.getVisible() == false)) {
|
|
|
|
// Au premier click, on place une étoile pour indiquer la présence d'une mine
|
|
|
|
if (this.marquage == 0) {
|
2022-05-25 13:37:32 +02:00
|
|
|
panel.setReperee(true,1);
|
2022-05-16 20:19:51 +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();
|
2022-05-25 13:37:32 +02:00
|
|
|
panel.setReperee(true, 2);
|
2022-05-16 20:19:51 +02:00
|
|
|
this.marquage = 2;
|
|
|
|
}
|
|
|
|
// Au troisième click on efface tout marquage
|
|
|
|
else if (this.marquage == 2) {
|
2022-05-25 13:37:32 +02:00
|
|
|
panel.setReperee(false,0);
|
2022-05-16 20:19:51 +02:00
|
|
|
panel.removeAll();
|
|
|
|
this.marquage = 0;
|
|
|
|
}
|
|
|
|
// On met à jour l'affichage de la case cliquée
|
|
|
|
panel.updateUI();
|
2022-05-04 23:03:02 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* Méthode à écrire qui n'intervient pas
|
|
|
|
* @param evenement L'évenement de la souris
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public void mouseEntered(MouseEvent evenement) {
|
|
|
|
}
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* Méthode à écrire qui n'intervient pas
|
|
|
|
* @param evenement L'évenement de la souris
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public void mouseExited(MouseEvent evenement) {
|
|
|
|
}
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* Méthode à écrire qui n'intervient pas
|
|
|
|
* @param evenement L'évenement de la souris
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public void mousePressed(MouseEvent evenement) {
|
|
|
|
}
|
2022-05-25 15:36:29 +02:00
|
|
|
/**
|
|
|
|
* Méthode à écrire qui n'intervient pas
|
|
|
|
* @param evenement L'évenement de la souris
|
|
|
|
*/
|
2022-05-16 20:19:51 +02:00
|
|
|
public void mouseReleased(MouseEvent evenement) {
|
2022-05-04 23:03:02 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|