diff --git a/app/src/main/java/model/ColoredCellIterator.java b/app/src/main/java/model/ColoredCellIterator.java index 12679d2a3cc00b4e89964dcfaf5b00250112ba43..558bb64ac7bf37c014fb85f7ca49b4d360fa5c0d 100644 --- a/app/src/main/java/model/ColoredCellIterator.java +++ b/app/src/main/java/model/ColoredCellIterator.java @@ -1,6 +1,7 @@ package model; import javafx.scene.paint.Color; +import util.SetUtil; import java.awt.*; import java.util.HashSet; @@ -26,11 +27,18 @@ public class ColoredCellIterator implements Iterator<Cell> { @Override public boolean hasNext() { boolean expression=!(this.pendingCells.isEmpty()); - return expression; + return expression; } @Override public Cell next() { - return null; - } + Cell Cell = SetUtil.anyElement(this.pendingCells); + this.pendingCells.remove(Cell); + this.visitedCells.add(Cell); + for (Cell neighbour : Cell.getNeighbours()){ + if (Cell.getColor() == neighbour.getColor() && !(this.visitedCells.contains(neighbour))){ + this.pendingCells.add(neighbour); + } + } + return Cell; } } diff --git a/app/src/main/java/model/GrayCell.java b/app/src/main/java/model/GrayCell.java index 8007887ea0a9ca53b4ec9b5bf8d7a894c9711ac3..80d9a702c89d0db406584483bd64a296b053499f 100644 --- a/app/src/main/java/model/GrayCell.java +++ b/app/src/main/java/model/GrayCell.java @@ -3,6 +3,7 @@ package model; import javafx.beans.property.Property; import javafx.scene.paint.Color; +import java.util.Iterator; import java.util.List; public class GrayCell extends AbstractCell{ @@ -27,7 +28,11 @@ public class GrayCell extends AbstractCell{ */ @Override public void setNeighbours(List<Cell> cells) { + } + @Override + public Iterator<Cell> iterator() { + return null; } @Override diff --git a/app/src/test/java/model/ColoredCellIteratorTest.java b/app/src/test/java/model/ColoredCellIteratorTest.java index 4e55550e559f83bab32c3bb3505e2a441feadfac..67a4966d00b7865e097d57c4b84bec1043438ea3 100644 --- a/app/src/test/java/model/ColoredCellIteratorTest.java +++ b/app/src/test/java/model/ColoredCellIteratorTest.java @@ -11,8 +11,6 @@ import static org.assertj.core.api.Assertions.assertThat; class ColoredCellIteratorTest { - // TODO - // uncomment /* * +---+---+---+ * | R | B | R | @@ -23,7 +21,15 @@ class ColoredCellIteratorTest { * +---+---+---+ */ - /* private static ArrayGrid gridThreeThree = new ArrayGrid(3,3); + private static ArrayGrid gridThreeThree; + + static { + try { + gridThreeThree = new ArrayGrid(3,3); + } catch (Exception e) { + throw new RuntimeException(e); + } + } @BeforeAll private static void initializeColorsGrid(){ @@ -56,5 +62,5 @@ class ColoredCellIteratorTest { assertThat(fromIteratorCells).hasSameElementsAs(expectedBlackCells).hasSameSizeAs(expectedBlackCells); } - */ + } \ No newline at end of file