diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java index 93644e789583d35602032f5aa15e6b120ecb6648..0ce83d70767482eb3259b70e16d50e95973968e6 100644 --- a/app/src/main/java/model/ArrayGrid.java +++ b/app/src/main/java/model/ArrayGrid.java @@ -33,6 +33,6 @@ public class ArrayGrid implements Grid{ } } public Iterator<Cell> iterator(){ - return new CellGridIterator(); + return new CellGridIterator(this); } } diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java index 4c7908093744192f2b5cb729a26691df62dad749..04199f3008a467658dbb1ab3bfcd9d41297523f4 100644 --- a/app/src/main/java/model/CellGridIterator.java +++ b/app/src/main/java/model/CellGridIterator.java @@ -2,29 +2,25 @@ 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; + this.indixColum=0; + this.indixRow=0; } - public SquareCell next() { - int i = 0; - while (i < grid.getNumberOfRows()) { - - while (it.hasNext()) { - return it.next(); - } - i++; + public Cell next() { + final Cell result = grid.getCell(indixRow, indixColum); + indixColum = (indixColum +1) % grid.getNumberOfColumns(); + if(indixColum == 0){ + indixRow++; } - } - public boolean hasNext( ){ - int n; - - if(n>= grid.getNumberOfColumns()|| n>= grid.getNumberOfRows()) return false; - + return result; } + public boolean hasNext(){ + return this.indixColum < this.grid.getNumberOfColumns() && indixRow < this.grid.getNumberOfRows(); + } }