From 976240d40eb1eb635424539908a80e382cdf4192 Mon Sep 17 00:00:00 2001
From: Hang <thi-hang.NGUYEN@etu.univ-amu.fr>
Date: Wed, 16 Nov 2022 10:34:17 +0100
Subject: [PATCH] THN

---
 .../main/java/model/ColoredCellIerator.java   | 42 -----------------
 .../main/java/model/ColoredCellIterator.java  | 46 +++++++++++++++++++
 .../java/model/DistinctColorGenerator.java    |  2 +-
 .../model/DistinctColorGeneratorTest.java     |  4 +-
 4 files changed, 49 insertions(+), 45 deletions(-)
 delete mode 100644 app/src/main/java/model/ColoredCellIerator.java
 create mode 100644 app/src/main/java/model/ColoredCellIterator.java

diff --git a/app/src/main/java/model/ColoredCellIerator.java b/app/src/main/java/model/ColoredCellIerator.java
deleted file mode 100644
index 43dfb40..0000000
--- a/app/src/main/java/model/ColoredCellIerator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package model;
-
-
-
-import javafx.scene.paint.Color;
-import util.SetUtil;
-
-import java.util.*;
-
-public class ColoredCellIerator {/*implements Iterator<Cell> {
-
-    Color color;
-    List<Cell> cells;
-    Set<Cell> visitedCells;
-    Set<Cell> pendingCells=new HashSet<Cell>();
-
-
-    public ColoredCellIerator(Cell startCell){
-        this.color=startCell.getColor();
-        this.visitedCells= new HashSet<Cell>();
-        this.pendingCells.add(startCell);
-
-    }
-    @Override
-    public boolean hasNext() {
-        if (this.pendingCells.size()==0) return false;
-        return true;
-    }
-
-    @Override
-    public Cell next() {
-        for( int i=0; i< this.pendingCells.size();i++){
-            if (SetUtil.anyElement(this.pendingCells)!= SetUtil.anyElement(this.visitedCells)&&(SetUtil.anyElement(this.pendingCells).getColor()==this.color){
-                //this.visitedCells.add(SetUtil.anyElement())
-            }
-        }
-
-
-
-        return null;
-    }*/
-}
diff --git a/app/src/main/java/model/ColoredCellIterator.java b/app/src/main/java/model/ColoredCellIterator.java
new file mode 100644
index 0000000..010e0c7
--- /dev/null
+++ b/app/src/main/java/model/ColoredCellIterator.java
@@ -0,0 +1,46 @@
+package model;
+
+
+
+import javafx.scene.paint.Color;
+import util.SetUtil;
+
+import java.util.*;
+
+public class ColoredCellIterator implements Iterator<Cell> {
+
+    private final Color color;
+    Set<Cell> visitedCells;
+    Set<Cell> pendingCells=new HashSet<Cell>();
+
+
+    public ColoredCellIterator(Cell startCell){
+        this.color=startCell.getColor();
+        this.visitedCells= new HashSet<Cell>();
+        pendingCells.add(startCell);
+    }
+
+    @Override
+    public boolean hasNext() {
+
+        return !pendingCells.isEmpty();
+    }
+
+    @Override
+    public Cell next() {
+
+        Cell pendingElement=SetUtil.anyElement(pendingCells);
+
+        for(Cell cell: pendingElement.getNeighbours()){
+            if( cell.getColor()==this.color&& !(visitedCells.contains(pendingElement)))
+                pendingCells.add(cell);
+        }
+
+        visitedCells.add(pendingElement);
+        pendingCells.remove(pendingElement);
+        return pendingElement;
+
+
+
+    }
+}
diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java
index 3a70a73..a9a72ef 100644
--- a/app/src/main/java/model/DistinctColorGenerator.java
+++ b/app/src/main/java/model/DistinctColorGenerator.java
@@ -17,7 +17,7 @@ public class DistinctColorGenerator implements ColorGenerator {
 
         List<Cell> neighbors = new ArrayList<>();
 
-        System.out.println(neighbors.size());
+        //System.out.println(neighbors.size());
 
         List<Color> neighbor_colors = new ArrayList<Color>();
 
diff --git a/app/src/test/java/model/DistinctColorGeneratorTest.java b/app/src/test/java/model/DistinctColorGeneratorTest.java
index fde6971..deb5461 100644
--- a/app/src/test/java/model/DistinctColorGeneratorTest.java
+++ b/app/src/test/java/model/DistinctColorGeneratorTest.java
@@ -19,7 +19,7 @@ class DistinctColorGeneratorTest {
 
     @Test
     void testNextColorWithTooFewAvailableColor() {
-        DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator(Color.RED, List.of(Color.RED));
+        DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator( List.of(Color.RED),Color.RED);
         grid.color(colorGeneratorOne);
         assertThat(grid.getCell(0,0).getColor()).isEqualTo(Color.RED);
         assertThat(grid.getCell(1,1).getColor()).isEqualTo(Color.RED);
@@ -29,7 +29,7 @@ class DistinctColorGeneratorTest {
     @Test
     void testNextColorWithEnoughAvailableColor(){
         Color defaultColor = Color.BLACK;
-        DistinctColorGenerator colorGenerator = new DistinctColorGenerator(defaultColor, List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE));
+        DistinctColorGenerator colorGenerator = new DistinctColorGenerator( List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE),defaultColor);
         grid.color(colorGenerator);
         for(Cell cell: grid){
             assertThat(cell.getNeighbours().stream().map(c-> c.getColor())).doesNotContain(cell.getColor());
-- 
GitLab