diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index a5d0b3ec5b95972acdc0e1b1eb669aaa0e8035b5..e18a40561026a85996f70b8d72752d1a261cf3d7 100644
Binary files a/.gradle/8.4/executionHistory/executionHistory.bin and b/.gradle/8.4/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock
index b7c2f5583a7dd831811c5b0de60eaf659d27068f..31afb2fde1ea45ca2514882e932c8dd2bd6bd5e5 100644
Binary files a/.gradle/8.4/executionHistory/executionHistory.lock and b/.gradle/8.4/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin
index 08803b8ad4c4e7d1cc6c401c51420d2742340c25..f0f60dd189c93d507874834476366d743a8ea6bd 100644
Binary files a/.gradle/8.4/fileHashes/fileHashes.bin and b/.gradle/8.4/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock
index 7ffccdbda4931f659d3234ec73f2e08e8601586a..dbb4268685b089c3519007701625f708d39d3335 100644
Binary files a/.gradle/8.4/fileHashes/fileHashes.lock and b/.gradle/8.4/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin
index 02687afa3db118a567b09be0b471de862a223f02..5d5250bf618f0c3e771da9ff207dcd6afede9fcf 100644
Binary files a/.gradle/8.4/fileHashes/resourceHashesCache.bin and b/.gradle/8.4/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index ddadcf33733c1bcc83a80d1fa35fb6c158f752be..597fa5646bc0a202c4acc150ae6bda99d792ee61 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index 97757e493696f88cacfa26c546434f8d90d26a82..78e48262bb0ad56aeb9b7e439cbf693717d8b1fd 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
index 296a051a57bcda0fb14333f1fc918572ca487b55..6eea5302820e1168fc19b7a74e8eb298e3f76dc2 100644
Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index d6b267cb0f38c6486808837f61ba866434fae1d3..93c1e1a51a890beb25828d40a897e7dc64df73ee 100644
Binary files a/build/classes/java/main/controller/Controller.class and b/build/classes/java/main/controller/Controller.class differ
diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class
index 6143f150ac592a530892fd585d60cf42c6d07aaf..56c404f1f632396c3dfa76bebf6ffc66780d065c 100644
Binary files a/build/classes/java/main/model/ModelElement.class and b/build/classes/java/main/model/ModelElement.class differ
diff --git a/build/classes/java/main/newmodel/Extinguisher.class b/build/classes/java/main/newmodel/Extinguisher.class
index 894890b8147bfba52e300d94936365bf3a1da66c..6b43e9b55ae94fbcad6cd61c1419e0f1f319e9c2 100644
Binary files a/build/classes/java/main/newmodel/Extinguisher.class and b/build/classes/java/main/newmodel/Extinguisher.class differ
diff --git a/build/classes/java/main/newmodel/Fboard.class b/build/classes/java/main/newmodel/Fboard.class
index fe5c215179707eb6aff0f78dd1750f53fc96ad09..6d6dd6fcac301041b06a8599abaf9f24d2d2cce8 100644
Binary files a/build/classes/java/main/newmodel/Fboard.class and b/build/classes/java/main/newmodel/Fboard.class differ
diff --git a/build/classes/java/main/newmodel/Fire.class b/build/classes/java/main/newmodel/Fire.class
index f625792e7a6048eb3bfdad7147f7991b2a3fd371..ec444add9b9e8dfc26554e0e2e5afc5ae8666856 100644
Binary files a/build/classes/java/main/newmodel/Fire.class and b/build/classes/java/main/newmodel/Fire.class differ
diff --git a/build/classes/java/main/newmodel/FireFighter.class b/build/classes/java/main/newmodel/FireFighter.class
index 953a2c4aab179893852b07fb34e2145a0c59f8f9..5e3c3b84c4d3cbca55ca2d46814fb6302d72848d 100644
Binary files a/build/classes/java/main/newmodel/FireFighter.class and b/build/classes/java/main/newmodel/FireFighter.class differ
diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class
index 9c06aa83b1e4b099999a2b888508175e41625a98..63d49854069620a2b3f32fbe763d47f505f16429 100644
Binary files a/build/classes/java/main/view/ViewElement.class and b/build/classes/java/main/view/ViewElement.class differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4
deleted file mode 100644
index d6b267cb0f38c6486808837f61ba866434fae1d3..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId4 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1
deleted file mode 100644
index 894890b8147bfba52e300d94936365bf3a1da66c..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Extinguisher.class.uniqueId1 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2
deleted file mode 100644
index b506be8c5ab23c6da2c589b416f407f3cc10cc32..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fboard.class.uniqueId2 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6
deleted file mode 100644
index f625792e7a6048eb3bfdad7147f7991b2a3fd371..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId6 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5
deleted file mode 100644
index 953a2c4aab179893852b07fb34e2145a0c59f8f9..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId5 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0
deleted file mode 100644
index a46bf5e0e0ddf302f702ca7ac83e2c4405bf337c..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/item.class.uniqueId0 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3
deleted file mode 100644
index 022c1fa844a25744d0a811cb92acc69ae1261c3d..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId3 and /dev/null differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index dc869a1772e567845d90e803120a428499cf9665..97d734021b7234a924055acc7b5bcd852f2b0525 100644
Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index fb20711c755936a28954a28ba01705df020e501a..f29bd8239e9562de6033bd5933da09b1535cb4bc 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -105,6 +105,9 @@ public class Controller {
     if (squareState.contains(ModelElement.FIRE)){
       return ViewElement.FIRE;
     }
+    if(squareState.contains(ModelElement.NUAGE)){
+      return ViewElement.NUAGE;
+    }
     return ViewElement.EMPTY;
   }
 
@@ -154,6 +157,7 @@ public class Controller {
     List<item> items= new ArrayList<>();
     items.add(new Fire(initialFireCount));
     items.add(new FireFighter(initialFirefighterCount));
+    items.add(new Nuage(initialFirefighterCount));
     Fboard b=new Fboard(columnCount,rowCount,items);
     b.initializeElements();
     this.setModel(b);
diff --git a/src/main/java/model/ModelElement.java b/src/main/java/model/ModelElement.java
index 84c78103e16e51f6207e0bf69de9d1a3cc4b5280..0811ce39595d3ed4ff2d5c2cbc4822042df64dbd 100644
--- a/src/main/java/model/ModelElement.java
+++ b/src/main/java/model/ModelElement.java
@@ -2,5 +2,5 @@ package model;
 
 //this class represents two types of constant Firefighter or fire
 public enum ModelElement {
-  FIREFIGHTER, FIRE ,NOT
+  FIREFIGHTER, FIRE ,NOT ,NUAGE
 }
diff --git a/src/main/java/newmodel/Extinguisher.java b/src/main/java/newmodel/Extinguisher.java
index 632aaadaf3852b0cd56f8b86f0d4fff0c98c6994..10b3de1053438a20a65d436c395fe5cd79100ad5 100644
--- a/src/main/java/newmodel/Extinguisher.java
+++ b/src/main/java/newmodel/Extinguisher.java
@@ -5,7 +5,7 @@ import util.Position;
 import java.util.List;
 public abstract class Extinguisher implements item {
 
-
+        protected static final int ID = 0 ;
 
         public abstract List<Position> update(Fboard board);
         public abstract void extinguish(Position position,Fboard board);
diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java
index b7b4524baa077e1ebc36838be291830f432a0711..eef34945700c6ccb8100d5a39fcb45c43bdf6ecf 100644
--- a/src/main/java/newmodel/Fboard.java
+++ b/src/main/java/newmodel/Fboard.java
@@ -65,6 +65,10 @@ public class Fboard {
         }
     }
 
+    public List<item> getItems(){
+        return this.items;
+    }
+
 
     public Fire getFire() {
         for (item e : items) {
diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java
index 9675660b16fc4080eb89685422346bfab579c66d..51787a680bc55da7256a01c6b2f148e3e131928d 100644
--- a/src/main/java/newmodel/Fire.java
+++ b/src/main/java/newmodel/Fire.java
@@ -10,7 +10,7 @@ public class Fire implements item {
     private final int initialFireCount;
 
     private List<Position> firePositions;
-    private ModelElement state;
+    private final ModelElement state;
     private final Random randomGenerator = new Random();
 
     private final int ID=1;
diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java
index 31d40efaac40775ff2059aade316cce5bbf25ab8..2ee8824c7f06df87a44e14bcd1a0dd148de88299 100644
--- a/src/main/java/newmodel/FireFighter.java
+++ b/src/main/java/newmodel/FireFighter.java
@@ -7,13 +7,12 @@ import java.util.Random;
 
 
 public class FireFighter extends Extinguisher {
-    private ModelElement state;
+    private final ModelElement state;
     private List<Position> firefighterPositions;
     private final Random randomGenerator = new Random();
     private List<Position> neighborFirePositions;
     private final int initialFirefighterCount;
 
-    private final int ID=0;
     public FireFighter(int initialFirefighterCount){
 
         this.initialFirefighterCount=initialFirefighterCount;
@@ -55,7 +54,6 @@ public class FireFighter extends Extinguisher {
 
         return modifiedPositions;
     }
-    //modifiedPosition contient Last fire fighter positions and New Firefighterpositions with neighbor of every new firefighter
 
 
 
@@ -68,9 +66,8 @@ public class FireFighter extends Extinguisher {
         return this.state;
     }
 
-    // implementi liha pattern visiteur
     public int getID() {
-        return this.ID;
+        return super.ID;
     }
 
     public void initialize() {
diff --git a/src/main/java/newmodel/Nuage.java b/src/main/java/newmodel/Nuage.java
new file mode 100644
index 0000000000000000000000000000000000000000..e843f6e47ccb5a7c0c6a9df1544c464104609ec7
--- /dev/null
+++ b/src/main/java/newmodel/Nuage.java
@@ -0,0 +1,78 @@
+package newmodel;
+
+import model.ModelElement;
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class Nuage extends Extinguisher {
+    private final ModelElement state;
+    private List<Position> NuagePositions;
+    private final Random randomGenerator = new Random();
+    private final int initialNuageCount;
+
+    public Nuage(int initialNuageCount) {
+        this.state = ModelElement.NUAGE;
+        this.initialNuageCount=initialNuageCount;
+    }
+
+    public List<Position> update(Fboard board) {
+        int i = 0;
+        List<Position> result = new ArrayList<>();
+        while (i < this.initialNuageCount) {
+            Position pos = randomPosition();
+            boolean positionIsValid = true;
+
+            for (item it : board.getItems()) {
+                if (it.getID() == 0 && it.getPositions().contains(pos)) {
+                    positionIsValid = false;
+                    break;
+                }
+            }
+
+            if (positionIsValid) {
+                i++;
+                result.add(pos);
+            }
+        }
+        for(Position p : result){
+            extinguish(p,board);
+        }
+        this.NuagePositions=result;
+        return this.NuagePositions;
+    }
+
+    private Position randomPosition() {
+        return new Position(randomGenerator.nextInt(Fboard.rowCount), randomGenerator.nextInt(Fboard.columnCount));
+    }
+
+
+
+    public void extinguish(Position position,Fboard board) {
+        board.getFire().extinguish(position);
+    }
+
+
+    public ModelElement getState() {
+        return this.state;
+    }
+
+
+    public int getID() {
+        return ID;
+    }
+
+ // A modifier pour ne pas avoir une superpositione entre firefighter et nuage
+    public void initialize() {
+        NuagePositions = new ArrayList<>();
+        for (int index = 0; index < initialNuageCount; index++)
+            NuagePositions.add(randomPosition());
+    }
+
+    @Override
+    public List<Position> getPositions() {
+        return NuagePositions;
+    }
+}
diff --git a/src/main/java/view/ViewElement.java b/src/main/java/view/ViewElement.java
index bd847977fc254483e0e255a17586cfb6733a023a..abb2ce32056405f2301efcc4994df4693e02c37a 100644
--- a/src/main/java/view/ViewElement.java
+++ b/src/main/java/view/ViewElement.java
@@ -4,7 +4,7 @@ import javafx.scene.paint.Color;
 
 //this class declare three constants with each constants is related to a specified color like fire to red
 public enum ViewElement {
-  FIREFIGHTER(Color.BLUE), FIRE(Color.RED), EMPTY(Color.WHITE);
+  FIREFIGHTER(Color.DARKBLUE), FIRE(Color.RED), EMPTY(Color.WHITE) ,NUAGE(Color.LIGHTBLUE);
   final Color color;
   ViewElement(Color color) {
     this.color = color;