diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index a83eda2c2dfda65c35fc3fbca98f80cdebee67ee..d2219362bb51232c67817489ee1e479f46ed6cd8 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/resources/main/view/view.fxml b/build/resources/main/view/view.fxml
index 336ffa315645baacbe25bf59171d2ff6d867b9c5..8be26ffd3de7165c468bfca9c3f375f80e016a4e 100644
--- a/build/resources/main/view/view.fxml
+++ b/build/resources/main/view/view.fxml
@@ -32,6 +32,20 @@
     <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
                   mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
                   prefWidth="200.0" styleClass="button" text="Pause"/>
+
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="BLACK : ROAD"/>
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="BLUE : FIREFIGHTER"/>
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="RED : FIRE"/>
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="GRAY : CLOUD"/>
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="AQUA : MOTORIZEDFIREFIGHTER"/>
+    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+           text="BROWN : MOUNTAIN"/>
+
   </VBox>
   <FirefighterGrid fx:id="grid"
                    xmlns="http://javafx.com/javafx"
diff --git a/src/Diagramme.png b/src/Diagramme.png
new file mode 100644
index 0000000000000000000000000000000000000000..41499cc35e1644d1e9296bf374da3a47aa5ca5e4
Binary files /dev/null and b/src/Diagramme.png differ
diff --git a/src/README.md b/src/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..8bd0607685013786221ded943eaae5372415040e
--- /dev/null
+++ b/src/README.md
@@ -0,0 +1,60 @@
+# **Rapport de projet : Simulateur d'Automates Cellulaires**
+
+## **1. Objectif du projet**
+Le projet vise à simuler un système complexe utilisant un automate cellulaire représenté sous forme de grille. Les principales entités sont :
+- **Feux** : Représentant les incendies qui se propagent.
+- **Pompiers** : Acteurs principaux pour éteindre les incendies.
+- **Nuages** : Contribuent également à l'extinction des feux.
+- **Routes** : Influencent la propagation du feu.
+- **Montagnes** : Empêchent le mouvement des entités.
+
+L'objectif est de modéliser les interactions entre ces entités tout en respectant les principes de la programmation orientée objet.
+
+---
+
+## **2. Description technique**
+
+### **2.1. Architecture logicielle**
+L'architecture est basée sur les principes suivants :
+- **Interface `Board`** : Définit les caractéristiques et états du plateau (grille).
+- **Entités (`Elements`)** : Inclut des classes comme `Fire`, `Firefighter`, `Cloud`, etc., pour gérer des états spécifiques des positions dans la grille.
+- **Mise à jour (`Updater`)** : Gestion des transitions des entités à chaque étape (par exemple, propagation du feu ou mouvement des pompiers).
+- **Gestion d'état** : La classe `StateManager` centralise l'état de chaque position sur la grille.
+
+### **2.2. Classes principales**
+1. **Modèle du plateau (`FirefightingBoard`)**
+    - Contient les entités et gère leur initialisation.
+    - Gère les dimensions de la grille et les étapes de simulation.
+
+2. **Entités**
+    - **`Fire`** : Gère la propagation des incendies en tenant compte des obstacles (routes, montagnes).
+    - **`Firefighter` et `MotorizedFirefighter`** : Extincteurs manuels et motorisés avec des algorithmes de déplacement spécifiques.
+    - **`Cloud`** : Positionne des nuages de pluie pour éteindre les feux.
+    - **`Road` et `Mountain`** : Obstacles pour les feux et les pompiers.
+
+3. **Mise à jour (`Updater`)**
+    - `FireUpdater` : Propage les feux vers les cases adjacentes.
+    - `FirefighterUpdater` et `MotorizedFirefighterUpdater` : Déplacement et extinction de feux.
+    - `CloudUpdater` : Positionne les nuages pour éteindre les incendies.
+
+### **2.3. Méthodes clés**
+- **Initialisation** :  
+  Chaque entité est positionnée aléatoirement grâce à `RandomPositionsGenerator`.
+- **Propagation des états** :  
+  Chaque `Updater` modifie l'état des entités selon des règles spécifiques.
+- **Gestion des voisins** :  
+  La classe `Neighbors` identifie les cases adjacentes pour chaque position.
+
+---
+
+## **3. Respect des principes SOLID**
+1. **Responsabilité unique (SRP)** :  
+   Chaque classe a une seule responsabilité (exemple : `Fire` gère les positions des feux uniquement).
+2. **Ouvert/fermé (OCP)** :  
+   Les entités (`FireExtinguisher`, `Updater`) peuvent être étendues sans modification des classes existantes.
+3. **Substitution de Liskov (LSP)** :  
+   Les classes dérivées (`Firefighter`, `MotorizedFirefighter`) respectent les contrats de la classe de base `FireExtinguisher`.
+4. **Séparation des interfaces (ISP)** :  
+   Les interfaces sont spécifiques (`Board`, `Elements`, `State`).
+5. **Inversion des dépendances (DIP)** :  
+   Les classes dépendent d'abstractions, pas d'implémentations spécifiques.
\ No newline at end of file