feat(SelectionView): ajout commentaire

This commit is contained in:
2025-12-19 19:27:20 +01:00
parent 321fa43666
commit 5932c7ed0f

View File

@@ -11,31 +11,47 @@ import model.car.Car;
import model.car.Selection;
public class SelectionView extends GameView {
/** Builder du jeu associé */
private Game.Builder gameBuilder = new Game.Builder();
/** Sélection de voitures et décorateurs */
private Selection selection = new Selection(gameBuilder);
/** Panel contenant tous les boutons de sélection */
private JPanel buttonPanel = new JPanel();
/** Accesseur vers la sélection */
public Selection getSelection() {
return selection;
}
/**
* Constructeur principal
*
* @param ncar nombre de voitures à créer et personnaliser
*/
public SelectionView(int ncar) {
super(null, "Menu de sélection", 500, 300, 400, 400);
init(null); // forcer le init
init(null); // forcer l'initialisation du JFrame
// Layout des boutons : grille avec 3 colonnes (Hybrid, Drunk, Boost)
buttonPanel.setLayout(new GridLayout(0, 3, 5, 5));
frame.add(buttonPanel, BorderLayout.CENTER);
// Boucle pour créer chaque voiture et ses boutons de décorateurs
for (int i = 1; i <= ncar; i++) {
Car car = selection.addCar("Car " + i, Color.getHSBColor(i / 3f, 0.8f, 0.8f));
// bouton Hybrid
Car car = selection.addCar(
"Car " + i,
Color.getHSBColor(i / 3f, 0.8f, 0.8f) // couleur différente pour chaque voiture
);
// Boutons de décorateurs
JButton hybridBtn = new JButton("Hybrid " + car.getName());
// bouton Drunk
JButton drunkBtn = new JButton("Drunk " + car.getName());
// bouton boost
JButton boostBtn = new JButton("Boost " + car.getName());
final int I = i;
final int I = i; // variable finale pour lambda
// Décorateur Hybrid
hybridBtn.addActionListener((ActionEvent e) -> {
try {
Car current = selection.getCars().get(I - 1);
@@ -46,6 +62,7 @@ public class SelectionView extends GameView {
}
});
// Décorateur Drunk
drunkBtn.addActionListener((ActionEvent e) -> {
try {
Car current = selection.getCars().get(I - 1);
@@ -56,6 +73,7 @@ public class SelectionView extends GameView {
}
});
// Décorateur Boost
boostBtn.addActionListener((ActionEvent e) -> {
try {
Car current = selection.getCars().get(I - 1);
@@ -66,18 +84,23 @@ public class SelectionView extends GameView {
}
});
// Ajouter les boutons au panel
buttonPanel.add(hybridBtn);
buttonPanel.add(drunkBtn);
buttonPanel.add(boostBtn);
}
// Bouton Start pour lancer la partie
JButton startBtn = new JButton("Start");
startBtn.addActionListener((ActionEvent e) -> {
frame.dispose();
selection.run();
frame.dispose(); // ferme le menu
selection.run(); // lance le jeu avec les voitures sélectionnées
});
// Ajout du bouton Start en bas de la fenêtre
this.frame.add(startBtn, BorderLayout.SOUTH);
// Repaint et validation pour afficher correctement les boutons
frame.revalidate();
frame.repaint();
}