From 2640a150bb96d7a2e37a349d002852522b910cf8 Mon Sep 17 00:00:00 2001
From: Hang <thi-hang.NGUYEN@etu.univ-amu.fr>
Date: Mon, 7 Nov 2022 23:23:47 +0100
Subject: [PATCH] =?UTF-8?q?fait=20=C3=A0=202/11?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/src/main/java/model/ArrayGrid.java        | 38 +++++++++++++++++++
 app/src/main/java/model/CellGridIterator.java | 30 +++++++++++++++
 app/src/main/java/model/Grid.java             |  2 +-
 app/src/main/java/model/Iterator.java         |  6 +++
 app/src/main/java/model/SquareCell.java       | 14 ++++++-
 5 files changed, 88 insertions(+), 2 deletions(-)
 create mode 100644 app/src/main/java/model/ArrayGrid.java
 create mode 100644 app/src/main/java/model/CellGridIterator.java
 create mode 100644 app/src/main/java/model/Iterator.java

diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java
new file mode 100644
index 0000000..93644e7
--- /dev/null
+++ b/app/src/main/java/model/ArrayGrid.java
@@ -0,0 +1,38 @@
+package model;
+
+public class ArrayGrid implements Grid{
+
+    private Cell[][] cells;
+    private int numberOfRows;
+    private int numberOfColumns;
+    public ArrayGrid(int numberOfRows, int numberOfColumns){
+        this.cells=new SquareCell[numberOfRows][numberOfColumns];
+        if (numberOfRows <= 0 || numberOfColumns <= 0)
+            throw new IllegalArgumentException();
+    }
+    @Override
+    public Cell getCell(int row, int column) {
+        return this.cells[row][column];
+    }
+
+    @Override
+    public int getNumberOfRows() {
+        return  this.numberOfRows;
+    }
+
+    @Override
+    public int getNumberOfColumns() {
+        return this.numberOfColumns;
+    }
+
+    public void color(ColorGenerator colorGenerator) {
+        for (int i=0; i < this.getNumberOfRows();i++){
+            for(int j=0; j< this.getNumberOfColumns();j++){
+                this.getCell(i,j).setColor(colorGenerator.nextColor(this.getCell(i,j)));
+            }
+        }
+    }
+    public Iterator<Cell> iterator(){
+        return new CellGridIterator();
+    }
+}
diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java
new file mode 100644
index 0000000..4c79080
--- /dev/null
+++ b/app/src/main/java/model/CellGridIterator.java
@@ -0,0 +1,30 @@
+package model;
+
+public class CellGridIterator implements Iterator<Cell>{
+    ArrayGrid grid;
+    Iterator<Cell> it=grid.iterator();
+    int indixRow;
+    int indixColum;
+
+    public CellGridIterator(ArrayGrid grid) {
+        this.grid = grid;
+    }
+    public SquareCell next() {
+        int i = 0;
+        while (i < grid.getNumberOfRows()) {
+
+            while (it.hasNext()) {
+                return it.next();
+            }
+            i++;
+        }
+    }
+    public boolean hasNext( ){
+        int n;
+
+        if(n>= grid.getNumberOfColumns()|| n>= grid.getNumberOfRows()) return false;
+
+
+
+    }
+}
diff --git a/app/src/main/java/model/Grid.java b/app/src/main/java/model/Grid.java
index 64341b4..75aacc6 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/Iterator.java b/app/src/main/java/model/Iterator.java
new file mode 100644
index 0000000..98e8427
--- /dev/null
+++ b/app/src/main/java/model/Iterator.java
@@ -0,0 +1,6 @@
+package model;
+
+public interface Iterator<Cell> {
+
+
+}
diff --git a/app/src/main/java/model/SquareCell.java b/app/src/main/java/model/SquareCell.java
index adac114..87139cc 100644
--- a/app/src/main/java/model/SquareCell.java
+++ b/app/src/main/java/model/SquareCell.java
@@ -7,7 +7,19 @@ import java.util.List;
 
 public class SquareCell extends AbstractCell{
 
-    List<Cell> neighbours;
+    private List<Cell> neighbours;
+
+    public SquareCell (){
+        Cell DEFAULT_CELL_COLOR;
+    }
+    public SquareCell(Color color){
+        this.setColor(color);
+    }
+    public SquareCell(Color color,List<Cell> neighbours ){
+        this.setColor(color);
+        this.neighbours=  neighbours;
+
+    }
 
     public SquareCell (){
         Cell DEFAULT_CELL_COLOR;
-- 
GitLab