From 0d1891b5752602572ce95e8e1b1720bbc046b12e Mon Sep 17 00:00:00 2001
From: r20004714 <andrianinarisaina-cy.RAKOTOARISOA@etu.univ-amu.fr>
Date: Wed, 16 Nov 2022 20:11:38 +0100
Subject: [PATCH] =?UTF-8?q?T=C3=A2che=205=20(8.1)=20:=20Cr=C3=A9ation=20de?=
 =?UTF-8?q?=20la=20classe=20ColoredCellIterator=20de=20ses=204=20attributs?=
 =?UTF-8?q?,=20de=20son=20constructeurs=20et=20des=20m=C3=A9thodes=20qu'il?=
 =?UTF-8?q?=20doit=20impl=C3=A9menter=20en=20tant=20qu'interface=20de=20It?=
 =?UTF-8?q?erator<Cell>?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/src/main/java/model/Cell.java             |  3 ++
 .../main/java/model/ColorCellIterator.java    | 44 +++++++++++++++++++
 app/src/main/java/model/SquareCell.java       |  5 +++
 3 files changed, 52 insertions(+)
 create mode 100644 app/src/main/java/model/ColorCellIterator.java

diff --git a/app/src/main/java/model/Cell.java b/app/src/main/java/model/Cell.java
index 4f09b41..90221fb 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 0000000..eba45e4
--- /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 411fbdf..b0c097d 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;
+    }
+
 
 }
-- 
GitLab