From 0d1891b5752602572ce95e8e1b1720bbc046b12e Mon Sep 17 00:00:00 2001 From: r20004714 <andrianinarisaina-cy.RAKOTOARISOA@etu.univ-amu.fr> Date: Wed, 16 Nov 2022 20:11:38 +0100 Subject: [PATCH] =?UTF-8?q?T=C3=A2che=205=20(8.1)=20:=20Cr=C3=A9ation=20de?= =?UTF-8?q?=20la=20classe=20ColoredCellIterator=20de=20ses=204=20attributs?= =?UTF-8?q?,=20de=20son=20constructeurs=20et=20des=20m=C3=A9thodes=20qu'il?= =?UTF-8?q?=20doit=20impl=C3=A9menter=20en=20tant=20qu'interface=20de=20It?= =?UTF-8?q?erator<Cell>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/model/Cell.java | 3 ++ .../main/java/model/ColorCellIterator.java | 44 +++++++++++++++++++ app/src/main/java/model/SquareCell.java | 5 +++ 3 files changed, 52 insertions(+) create mode 100644 app/src/main/java/model/ColorCellIterator.java diff --git a/app/src/main/java/model/Cell.java b/app/src/main/java/model/Cell.java index 4f09b41..90221fb 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 0000000..eba45e4 --- /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 411fbdf..b0c097d 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; + } + } -- GitLab