diff --git a/app/src/main/java/model/Cell.java b/app/src/main/java/model/Cell.java
index 4f09b41bc92f4c117ab722f4e7a642c4c691aa54..90221fb95e0e48804309cb0eb2bd4e2a4519c978 100644
--- a/app/src/main/java/model/Cell.java
+++ b/app/src/main/java/model/Cell.java
@@ -42,5 +42,8 @@ public interface Cell {
      */
     Property<Color> getColorProperty();
 
+    //Demandée par l'exercice
+    Iterator<Cell> iterator() ;
+
 
 }
diff --git a/app/src/main/java/model/ColorCellIterator.java b/app/src/main/java/model/ColorCellIterator.java
new file mode 100644
index 0000000000000000000000000000000000000000..eba45e44ee2b3e6d61deceb087fa69bbbca252b4
--- /dev/null
+++ b/app/src/main/java/model/ColorCellIterator.java
@@ -0,0 +1,44 @@
+package model;
+import java.awt.*;
+import java.util.Iterator;
+import java.util.Set ;
+
+public class ColorCellIterator implements Iterator<Cell> {
+
+    Color color ;      // qui correspond à la couleur de la cellule de départ
+    Set<Cell> visitedCells ;     //pour stocker l’ensemble des cellules sur lesquelles on a déjà itéré
+    Set<Cell> pendingCells ;    //à la cellule de départ et qui n’ont pas encore été parcourues
+
+    
+    //Constructeur de la classe
+    public void ColoredCellIterator(Cell startCell) {             //startCell : cellule à partir de laquelle on souhaite démarrer l’itération
+        this.pendingCells.add(startCell) ;
+    }
+
+    @Override
+    public boolean hasNext() {
+        return false;
+    }
+
+    @Override
+    public Cell next() {
+        return null;
+    }
+
+    public Set<Cell> getNeighbours() {
+        while (this.pendingCells.iterator().hasNext()) {
+            Cell pendingCell = this.pendingCells.iterator().next();
+            if (pendingCell.iterator().hasNext().getColor() == pendingCells.getColor()) {
+                this.pendingCells.add(pendingCell);
+            }
+            this.visitedCells.add(pendingCell);
+
+            if (this.pendingCells.iterator().hasNext()) {
+                pendingCell =  this.pendingCells.iterator().next();
+            }
+            else return this.visitedCells;
+        }
+
+    }
+
+}
diff --git a/app/src/main/java/model/SquareCell.java b/app/src/main/java/model/SquareCell.java
index 411fbdf69e1cbb6c858d9bcd007ea8299c366ed4..b0c097d5aa88d5c2d6f907900baf04169058ce0d 100644
--- a/app/src/main/java/model/SquareCell.java
+++ b/app/src/main/java/model/SquareCell.java
@@ -49,5 +49,10 @@ public class SquareCell extends AbstractCell{
 
     }
 
+    @Override
+    public Iterator<Cell> iterator() {
+        return null;
+    }
+
 
 }