diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java new file mode 100644 index 0000000000000000000000000000000000000000..93644e789583d35602032f5aa15e6b120ecb6648 --- /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 0000000000000000000000000000000000000000..4c7908093744192f2b5cb729a26691df62dad749 --- /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 64341b4de0f789c8307834655f856691218cd242..75aacc67512e50adc4a765004d5fed7ab55a39f3 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 0000000000000000000000000000000000000000..98e84279a7f4330ac489442adac27d27b53c9f1e --- /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 adac1141eadad457cd20b268921e02af63804e65..87139cc7dda76c3520648e900570e485725576c4 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;