package model; import java.util.Iterator; public class CellGridIterator implements Iterator<Cell> { private ArrayGrid grid; private int PrvColmn; private int PrvRow; private int ActColmn; private int ActRow; CellGridIterator(ArrayGrid grid){ PrvRow=ActRow=0; PrvColmn=ActColmn=0; this.grid=grid; } public boolean hasNext ( ) { return hasNextRow ()|| hasNextCol (); } public Boolean hasNextCol (){ return !(grid.getNumberOfColumns ()==ActColmn); } public Boolean hasNextRow(){ return !(grid.getNumberOfRows ()-1==this.ActRow); } public Cell next ( ) { if ( hasNextCol ( ) ) { PrvColmn=ActColmn; ActColmn++; return grid.getCell (PrvRow,PrvColmn ); } if ( hasNextRow ( ) ) { ActRow++; ActColmn=1; PrvColmn=0; PrvRow=ActRow; return grid.getCell ( PrvRow , PrvColmn ); } return null; } }