From b38fff22aba3c93c7e17a596b124141aa35efbf6 Mon Sep 17 00:00:00 2001
From: dragapsy <elghaoutiayman20@gmail.com>
Date: Fri, 18 Nov 2022 01:50:53 +0100
Subject: [PATCH] Tache 3 (6.1 + Constructeur CellGridIterator(ArrayGrid grid))

---
 app/src/main/java/model/ArrayGrid.java        | 20 +++++++++------
 app/src/main/java/model/CellGridIterator.java | 25 +++++++++++++++++++
 app/src/main/java/model/GrayGrid.java         | 10 +++++++-
 app/src/main/java/model/Grid.java             |  2 +-
 .../java/model/UniformColorGenerator.java     | 17 +++----------
 5 files changed, 51 insertions(+), 23 deletions(-)
 create mode 100644 app/src/main/java/model/CellGridIterator.java

diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java
index 826cf47..d9967c3 100644
--- a/app/src/main/java/model/ArrayGrid.java
+++ b/app/src/main/java/model/ArrayGrid.java
@@ -1,12 +1,13 @@
 package model;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 
 public class ArrayGrid implements Grid{
 
-    private Cell [][] cells;
+    protected Cell [][] cells;
     private int numberOfRows;
     private int numberOfColumns;
 
@@ -72,14 +73,19 @@ public class ArrayGrid implements Grid{
 
     @Override
     public void color(ColorGenerator colorGenerator) {
-        for (int i=0; i<this.numberOfRows;i++){
-            for(int j=0; j<this.numberOfColumns;j++){
-                colorGenerator.nextColor(cells[i][j]);
-            }
+//        for(Cell []cell1D:cells){
+//            for(Cell cell:cell1D){
+//                cell.setColor(colorGenerator.nextColor(cell));
+//            }
+//        }
+        for(Cell cell:this){
+            cell.setColor(colorGenerator.nextColor(cell));
         }
     }
 
 
-=======
->>>>>>> origin/main
+    @Override
+    public Iterator<Cell> iterator() {
+        return new CellGridIterator(this);
+    }
 }
diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java
new file mode 100644
index 0000000..2ea7957
--- /dev/null
+++ b/app/src/main/java/model/CellGridIterator.java
@@ -0,0 +1,25 @@
+package model;
+
+import java.util.Iterator;
+public class CellGridIterator implements Iterator<Cell> {
+
+    ArrayGrid arrayGrid;
+    private int rowIndex,columnIndex;
+
+    private Cell [][]cells;
+    public CellGridIterator(ArrayGrid grid) {
+        arrayGrid=grid;
+        cells=grid.cells;
+    }
+
+
+    @Override
+    public boolean hasNext() {
+        return false;
+    }
+
+    @Override
+    public Cell next() {
+       return null;
+    }
+}
diff --git a/app/src/main/java/model/GrayGrid.java b/app/src/main/java/model/GrayGrid.java
index 42a49eb..7656d08 100644
--- a/app/src/main/java/model/GrayGrid.java
+++ b/app/src/main/java/model/GrayGrid.java
@@ -1,6 +1,8 @@
 package model;
 
-public class GrayGrid implements Grid{
+import java.util.Iterator;
+
+public class GrayGrid implements Grid {
 
     private final int numberOfRows;
     private final int numnberOfColumns;
@@ -45,4 +47,10 @@ public class GrayGrid implements Grid{
     public void color(ColorGenerator colorGenerator) {
 
     }
+
+
+    @Override
+    public Iterator<Cell> iterator() {
+        return null;
+    }
 }
diff --git a/app/src/main/java/model/Grid.java b/app/src/main/java/model/Grid.java
index 68a9834..f49d488 100644
--- a/app/src/main/java/model/Grid.java
+++ b/app/src/main/java/model/Grid.java
@@ -1,6 +1,6 @@
 package model;
 
-public interface  Grid  {
+public interface  Grid extends Iterable<Cell>{
 
     /**
      * Return the cell located at the given coordinates in the grid.
diff --git a/app/src/main/java/model/UniformColorGenerator.java b/app/src/main/java/model/UniformColorGenerator.java
index fc335ea..9f21c99 100644
--- a/app/src/main/java/model/UniformColorGenerator.java
+++ b/app/src/main/java/model/UniformColorGenerator.java
@@ -8,21 +8,10 @@ public class UniformColorGenerator implements ColorGenerator{
 
     private Color color;
 
-    //code of color generator found on stackOverFlow;
-    // link : https://stackoverflow.com/questions/4246351/creating-random-colour-in-java
-    // but the color constructor with 3 parameter is not public, so I checked in the documentation of Color, and
-    // I found that there is a constructor with 4 parameter that is public since java 8;
-    // Link of the doc : https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/Color.html
+
     @Override
-   public Color nextColor(Cell cell) {
-//        Random rand = new Random();
-//        double red = rand.nextFloat();
-//        double green = rand.nextFloat();
-//        double blue = rand.nextFloat();
-//        double opacity=rand.nextFloat();
-//        Color randomColor = new Color(red, green, blue,opacity);
-//        cell.setColor(randomColor);
-//        return randomColor;
+   public Color nextColor(Cell cells) {
+
         return this.color;
 
     }
-- 
GitLab