SAE21_2023/src/GSPlayController.java

74 lines
2.2 KiB
Java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
* Le contrôleur pour le jeu de la grille.
* @version 1.0
* @author Moncef STITI
* @author Marco ORFAO
*/
public class GSPlayController implements KeyListener, ActionListener {
/**
* Le jeu de la grille
*/
private GSPlay gsPlay;
/**
* Constructeur du contrôleur du jeu de la grille.
* @param gsPlay Le jeu de la grille associé à ce contrôleur.
*/
public GSPlayController(GSPlay gsPlay) {
this.gsPlay = gsPlay;
}
/**
* Gère les actions lorsqu'un événement se produit.
* @param e L'événement déclenché.
*/
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == gsPlay.getBoutonValider()) {
// Crée une fenêtre de dialogue pour afficher le temps écoulé depuis le début du jeu.
GSWin gestionVictoire = new GSWin(gsPlay.getStartTime());
gestionVictoire.showDialog();
}
}
/**
* Gère les événements lorsque la touche est enfoncée.
* @param e L'événement de la touche enfoncée.
*/
@Override
public void keyPressed(KeyEvent e) {
int keyValue = gsPlay.getKeyValue(e);
if (keyValue != -1) {
// Met à jour la valeur dans la case active de la grille avec la touche appuyée.
gsPlay.getMaGrille().setValuetoCase(gsPlay.getMaGrille().whoIsActive_X(), gsPlay.getMaGrille().whoIsActive_Y(), keyValue);
// Active le bouton de validation si le jeu est terminé.
if (gsPlay.isGameOver()) {
gsPlay.getBoutonValider().setEnabled(true);
}
}
}
/**
* Gère les événements lorsque la touche est relâchée.
* @param e L'événement de la touche relâchée.
*/
@Override
public void keyReleased(KeyEvent e) {
// Non utilisé
}
/**
* Gère les événements lorsque la touche est tapée.
* @param e L'événement de la touche tapée.
*/
@Override
public void keyTyped(KeyEvent e) {
// Non utilisé
}
}