diff --git a/app/src/main/java/model/Cell.java b/app/src/main/java/model/Cell.java index 4f09b41bc92f4c117ab722f4e7a642c4c691aa54..90221fb95e0e48804309cb0eb2bd4e2a4519c978 100644 --- a/app/src/main/java/model/Cell.java +++ b/app/src/main/java/model/Cell.java @@ -42,5 +42,8 @@ public interface Cell { */ Property<Color> getColorProperty(); + //Demandée par l'exercice + Iterator<Cell> iterator() ; + } diff --git a/app/src/main/java/model/ColorCellIterator.java b/app/src/main/java/model/ColorCellIterator.java new file mode 100644 index 0000000000000000000000000000000000000000..eba45e44ee2b3e6d61deceb087fa69bbbca252b4 --- /dev/null +++ b/app/src/main/java/model/ColorCellIterator.java @@ -0,0 +1,44 @@ +package model; +import java.awt.*; +import java.util.Iterator; +import java.util.Set ; + +public class ColorCellIterator implements Iterator<Cell> { + + Color color ; // qui correspond à la couleur de la cellule de départ + Set<Cell> visitedCells ; //pour stocker l’ensemble des cellules sur lesquelles on a déjà itéré + Set<Cell> pendingCells ; //à la cellule de départ et qui n’ont pas encore été parcourues + + + //Constructeur de la classe + public void ColoredCellIterator(Cell startCell) { //startCell : cellule à partir de laquelle on souhaite démarrer l’itération + this.pendingCells.add(startCell) ; + } + + @Override + public boolean hasNext() { + return false; + } + + @Override + public Cell next() { + return null; + } + + public Set<Cell> getNeighbours() { + while (this.pendingCells.iterator().hasNext()) { + Cell pendingCell = this.pendingCells.iterator().next(); + if (pendingCell.iterator().hasNext().getColor() == pendingCells.getColor()) { + this.pendingCells.add(pendingCell); + } + this.visitedCells.add(pendingCell); + + if (this.pendingCells.iterator().hasNext()) { + pendingCell = this.pendingCells.iterator().next(); + } + else return this.visitedCells; + } + + } + +} diff --git a/app/src/main/java/model/SquareCell.java b/app/src/main/java/model/SquareCell.java index 411fbdf69e1cbb6c858d9bcd007ea8299c366ed4..b0c097d5aa88d5c2d6f907900baf04169058ce0d 100644 --- a/app/src/main/java/model/SquareCell.java +++ b/app/src/main/java/model/SquareCell.java @@ -49,5 +49,10 @@ public class SquareCell extends AbstractCell{ } + @Override + public Iterator<Cell> iterator() { + return null; + } + }