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