diff --git a/fr/iut_fbleau/Avalam/BackgroundLayer.java b/fr/iut_fbleau/Avalam/BackgroundLayer.java
new file mode 100644
index 0000000..4720d58
--- /dev/null
+++ b/fr/iut_fbleau/Avalam/BackgroundLayer.java
@@ -0,0 +1,37 @@
+package fr.iut_fbleau.Avalam;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+* La classe BackgroundLayer
+*
+* Sous composant de BoardView affichant l’image de fond.
+*/
+public class BackgroundLayer extends JComponent {
+ private Image img;
+
+ /**
+ * Construit une couche de fond.
+ *
+ * @param resourcePath chemin de l'image de fond
+ */
+ public BackgroundLayer(String resourcePath) {
+ img = Toolkit.getDefaultToolkit().getImage(
+ getClass().getClassLoader().getResource(resourcePath)
+ );
+ }
+
+ /**
+ * Dessine l'image de fond.
+ *
+ * @param g contexte graphique
+ */
+ @Override
+ protected void paintComponent(Graphics g) {
+ super.paintComponent(g);
+ if (img != null) {
+ g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
+ }
+ }
+}
diff --git a/fr/iut_fbleau/Avalam/BoardView.java b/fr/iut_fbleau/Avalam/BoardView.java
index 382c5e6..959ccce 100644
--- a/fr/iut_fbleau/Avalam/BoardView.java
+++ b/fr/iut_fbleau/Avalam/BoardView.java
@@ -1,192 +1,159 @@
-package fr.iut_fbleau.Avalam;
-
-import javax.swing.*;
-import java.awt.*;
-
-/**
-* La classe BoardView
-*
-* Représente la vue principale du plateau Avalam.
-* Elle gère :
-* - l’affichage des tours (PieceLayer)
-* - l’affichage des coups possibles (HighlightLayer)
-* - l’affichage du fond graphique
-* - les clics via InteractionController
-*
-* Cette classe ne contient aucune logique de règles du jeu.
-*
-* @version 1.0
-* Date :
-* Licence :
-*/
-public class BoardView extends JLayeredPane {
-
- //Attributs
-
- /** Référence au moteur Avalam. */
- private AvalamBoard board;
-
- /** Couche d’affichage du fond. */
- private BackgroundLayer backgroundLayer;
-
- /** Couche d’affichage des coups possibles. */
- private HighlightLayer highlightLayer;
-
- /** Couche d’affichage des pièces. */
- private PieceLayer pieceLayer;
-
- /** Contrôleur des interactions. */
- private InteractionController controller;
-
- /** Taille d’un pion en pixels. */
- private final int size = 50;
-
- /** Espacement entre les cases. */
- private final int spacing = 70;
-
- /** Décalage horizontal du plateau. */
- private final int xBase = 60;
-
- /** Décalage vertical du plateau. */
- private final int yBase = 60;
-
- /** Callback vers AvalamWindow pour mise à jour (score, tour, fin). */
- private Runnable boardUpdateCallback;
-
- //Constructeur
-
- /**
- * Construit la vue du plateau.
- *
- * @param board moteur du jeu
- * @param boardUpdateCallback callback à appeler après un coup
- */
- public BoardView(AvalamBoard board, Runnable boardUpdateCallback) {
- this.board = board;
- this.boardUpdateCallback = boardUpdateCallback;
-
- setLayout(null);
-
- // Contrôleur
- this.controller = new InteractionController(board, this);
-
- // Couche fond
- backgroundLayer = new BackgroundLayer("fr/iut_fbleau/Res/BackgroundAvalam.png");
- backgroundLayer.setBounds(0, 0, 725, 725);
- add(backgroundLayer, JLayeredPane.FRAME_CONTENT_LAYER);
-
- // Couche highlight
- highlightLayer = new HighlightLayer(xBase, yBase, spacing, size);
- add(highlightLayer, JLayeredPane.DEFAULT_LAYER);
-
- // Couche pièces
- pieceLayer = new PieceLayer();
- add(pieceLayer, JLayeredPane.PALETTE_LAYER);
-
- setPreferredSize(new Dimension(725, 725));
-
- refresh();
- }
-
- //Méthodes
-
- /**
- * Retourne le contrôleur d'interactions (utile pour simuler les clics du bot).
- *
- * @return contrôleur
- */
- public InteractionController getController() {
- return controller;
- }
-
- /**
- * Active/désactive les interactions utilisateur sur le plateau.
- * Utile pendant l'animation du bot pour éviter des clics concurrents.
- *
- * @param enabled true pour activer, false pour désactiver
- */
- public void setInteractionEnabled(boolean enabled) {
- // Désactive la couche des pièces (boutons) principalement
- pieceLayer.setEnabled(enabled);
- for (Component c : pieceLayer.getComponents()) {
- c.setEnabled(enabled);
- }
- }
-
- /**
- * Appelé par le contrôleur après un coup.
- */
- public void onBoardUpdated() {
- if (boardUpdateCallback != null) {
- boardUpdateCallback.run();
- }
- }
-
- /**
- * Rafraîchit les couches visuelles.
- */
- public void refresh() {
-
- pieceLayer.displayGrid(
- boardGrid(),
- xBase, yBase, spacing, size,
- (r, c) -> controller.onPieceClicked(r, c)
- );
-
- highlightLayer.setLegalMoves(controller.getLegalMoves());
-
- backgroundLayer.repaint();
- highlightLayer.repaint();
- pieceLayer.repaint();
- repaint();
- }
-
- /**
- * Récupère la grille depuis le moteur.
- *
- * @return grille 9x9 de tours
- */
- private Tower[][] boardGrid() {
- Tower[][] grid = new Tower[AvalamBoard.SIZE][AvalamBoard.SIZE];
-
- for (int r = 0; r < AvalamBoard.SIZE; r++) {
- for (int c = 0; c < AvalamBoard.SIZE; c++) {
- grid[r][c] = board.getTowerAt(r, c);
- }
- }
- return grid;
- }
-
- //Affichage
-
- /**
- * Composant affichant l’image de fond.
- */
- private static class BackgroundLayer extends JComponent {
- private Image img;
-
- /**
- * Construit une couche de fond.
- *
- * @param resourcePath chemin de l'image de fond
- */
- public BackgroundLayer(String resourcePath) {
- img = Toolkit.getDefaultToolkit().getImage(
- getClass().getClassLoader().getResource(resourcePath)
- );
- }
-
- /**
- * Dessine l'image de fond.
- *
- * @param g contexte graphique
- */
- @Override
- protected void paintComponent(Graphics g) {
- super.paintComponent(g);
- if (img != null) {
- g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
- }
- }
- }
-}
+package fr.iut_fbleau.Avalam;
+
+import javax.swing.*;
+import java.awt.*;
+
+/**
+* La classe BoardView
+*
+* Représente la vue principale du plateau Avalam.
+* Elle gère :
+* - l’affichage des tours (PieceLayer)
+* - l’affichage des coups possibles (HighlightLayer)
+* - l’affichage du fond graphique (BackgroundLayer)
+* - les clics via InteractionController
+*
+* Cette classe ne contient aucune logique de règles du jeu.
+*
+* @version 1.0
+* Date :
+* Licence :
+*/
+public class BoardView extends JLayeredPane {
+
+ //Attributs
+
+ /** Référence au moteur Avalam. */
+ private AvalamBoard board;
+
+ /** Couche d’affichage du fond. */
+ private BackgroundLayer backgroundLayer;
+
+ /** Couche d’affichage des coups possibles. */
+ private HighlightLayer highlightLayer;
+
+ /** Couche d’affichage des pièces. */
+ private PieceLayer pieceLayer;
+
+ /** Contrôleur des interactions. */
+ private InteractionController controller;
+
+ /** Taille d’un pion en pixels. */
+ private final int size = 50;
+
+ /** Espacement entre les cases. */
+ private final int spacing = 70;
+
+ /** Décalage horizontal du plateau. */
+ private final int xBase = 60;
+
+ /** Décalage vertical du plateau. */
+ private final int yBase = 60;
+
+ /** Callback vers AvalamWindow pour mise à jour (score, tour, fin). */
+ private Runnable boardUpdateCallback;
+
+ //Constructeur
+
+ /**
+ * Construit la vue du plateau.
+ *
+ * @param board moteur du jeu
+ * @param boardUpdateCallback callback à appeler après un coup
+ */
+ public BoardView(AvalamBoard board, Runnable boardUpdateCallback) {
+ this.board = board;
+ this.boardUpdateCallback = boardUpdateCallback;
+
+ setLayout(null);
+
+ // Contrôleur
+ this.controller = new InteractionController(board, this);
+
+ // Couche fond
+ backgroundLayer = new BackgroundLayer("fr/iut_fbleau/Res/BackgroundAvalam.png");
+ backgroundLayer.setBounds(0, 0, 725, 725);
+ add(backgroundLayer, JLayeredPane.FRAME_CONTENT_LAYER);
+
+ // Couche highlight
+ highlightLayer = new HighlightLayer(xBase, yBase, spacing, size);
+ add(highlightLayer, JLayeredPane.DEFAULT_LAYER);
+
+ // Couche pièces
+ pieceLayer = new PieceLayer();
+ add(pieceLayer, JLayeredPane.PALETTE_LAYER);
+
+ setPreferredSize(new Dimension(725, 725));
+
+ refresh();
+ }
+
+ //Méthodes
+
+ /**
+ * Retourne le contrôleur d'interactions (utile pour simuler les clics du bot).
+ *
+ * @return contrôleur
+ */
+ public InteractionController getController() {
+ return controller;
+ }
+
+ /**
+ * Active/désactive les interactions utilisateur sur le plateau.
+ * Utile pendant l'animation du bot pour éviter des clics concurrents.
+ *
+ * @param enabled true pour activer, false pour désactiver
+ */
+ public void setInteractionEnabled(boolean enabled) {
+ // Désactive la couche des pièces (boutons) principalement
+ pieceLayer.setEnabled(enabled);
+ for (Component c : pieceLayer.getComponents()) {
+ c.setEnabled(enabled);
+ }
+ }
+
+ /**
+ * Appelé par le contrôleur après un coup.
+ */
+ public void onBoardUpdated() {
+ if (boardUpdateCallback != null) {
+ boardUpdateCallback.run();
+ }
+ }
+
+ /**
+ * Rafraîchit les couches visuelles.
+ */
+ public void refresh() {
+
+ pieceLayer.displayGrid(
+ boardGrid(),
+ xBase, yBase, spacing, size,
+ (r, c) -> controller.onPieceClicked(r, c)
+ );
+
+ highlightLayer.setLegalMoves(controller.getLegalMoves());
+
+ backgroundLayer.repaint();
+ highlightLayer.repaint();
+ pieceLayer.repaint();
+ repaint();
+ }
+
+ /**
+ * Récupère la grille depuis le moteur.
+ *
+ * @return grille 9x9 de tours
+ */
+ private Tower[][] boardGrid() {
+ Tower[][] grid = new Tower[AvalamBoard.SIZE][AvalamBoard.SIZE];
+
+ for (int r = 0; r < AvalamBoard.SIZE; r++) {
+ for (int c = 0; c < AvalamBoard.SIZE; c++) {
+ grid[r][c] = board.getTowerAt(r, c);
+ }
+ }
+ return grid;
+ }
+}