ajout 2eme SAE DEV 1ere année 15,50/20

This commit is contained in:
EmmanuelTiamzon
2025-12-05 10:28:17 +01:00
parent 89feabab98
commit 936915e585
42 changed files with 1305 additions and 0 deletions

View File

@@ -0,0 +1,78 @@
/**
* La classe <code>Fenetre</code> représente la fenêtre principale du jeu SameGame.
* Elle contient laffichage graphique de la grille, le score, et le contrôleur de la souris.
*
* @version 1.7
* @author Emmanuel Srivastava-Tiamzon & Wael Atik
*/
import javax.swing.*;
import java.awt.*;
public class Fenetre extends JFrame {
/** Label affichant le score du joueur. */
private JLabel labelScore;
/**
* Constructeur de la fenêtre principale.
* Initialise les composants graphiques du jeu : la grille, la vue, le score et le contrôleur souris.
*/
public Fenetre() {
super("SameGame");
Grille grille = new Grille();
int tailleBloc = 50;
int largeur = grille.getColonnes() * tailleBloc;
int hauteur = grille.getLignes() * tailleBloc;
JeuBlocs vue = new JeuBlocs(grille, largeur, hauteur);
this.labelScore = new JLabel("Score : 0");
this.labelScore.setHorizontalAlignment(SwingConstants.CENTER);
this.labelScore.setFont(new Font("Arial", Font.BOLD, 18));
ControleurSouris controleur = new ControleurSouris(grille, vue, this.labelScore,this);
vue.addMouseListener(controleur);
this.setLayout(new BorderLayout());
this.add(this.labelScore, BorderLayout.NORTH);
this.add(vue, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(largeur + 11, hauteur + 61);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
/**
* Par polymorphisme on crée un nouveau constructeur pour qu'il s'adapte à une grille predefini
*/
public Fenetre(Grille grille) {
super("SameGame");
int tailleBloc = 50;
int largeur = grille.getColonnes() * tailleBloc;
int hauteur = grille.getLignes() * tailleBloc;
JeuBlocs vue = new JeuBlocs(grille, largeur, hauteur);
this.labelScore = new JLabel("Score : 0");
this.labelScore.setHorizontalAlignment(SwingConstants.CENTER);
this.labelScore.setFont(new Font("Arial", Font.BOLD, 18));
ControleurSouris controleur = new ControleurSouris(grille, vue, this.labelScore,this);
vue.addMouseListener(controleur);
this.setLayout(new BorderLayout());
this.add(this.labelScore, BorderLayout.NORTH);
this.add(vue, BorderLayout.CENTER);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(largeur + 11, hauteur + 61);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
}