From 976240d40eb1eb635424539908a80e382cdf4192 Mon Sep 17 00:00:00 2001 From: Hang <thi-hang.NGUYEN@etu.univ-amu.fr> Date: Wed, 16 Nov 2022 10:34:17 +0100 Subject: [PATCH] THN --- .../main/java/model/ColoredCellIerator.java | 42 ----------------- .../main/java/model/ColoredCellIterator.java | 46 +++++++++++++++++++ .../java/model/DistinctColorGenerator.java | 2 +- .../model/DistinctColorGeneratorTest.java | 4 +- 4 files changed, 49 insertions(+), 45 deletions(-) delete mode 100644 app/src/main/java/model/ColoredCellIerator.java create mode 100644 app/src/main/java/model/ColoredCellIterator.java diff --git a/app/src/main/java/model/ColoredCellIerator.java b/app/src/main/java/model/ColoredCellIerator.java deleted file mode 100644 index 43dfb40..0000000 --- a/app/src/main/java/model/ColoredCellIerator.java +++ /dev/null @@ -1,42 +0,0 @@ -package model; - - - -import javafx.scene.paint.Color; -import util.SetUtil; - -import java.util.*; - -public class ColoredCellIerator {/*implements Iterator<Cell> { - - Color color; - List<Cell> cells; - Set<Cell> visitedCells; - Set<Cell> pendingCells=new HashSet<Cell>(); - - - public ColoredCellIerator(Cell startCell){ - this.color=startCell.getColor(); - this.visitedCells= new HashSet<Cell>(); - this.pendingCells.add(startCell); - - } - @Override - public boolean hasNext() { - if (this.pendingCells.size()==0) return false; - return true; - } - - @Override - public Cell next() { - for( int i=0; i< this.pendingCells.size();i++){ - if (SetUtil.anyElement(this.pendingCells)!= SetUtil.anyElement(this.visitedCells)&&(SetUtil.anyElement(this.pendingCells).getColor()==this.color){ - //this.visitedCells.add(SetUtil.anyElement()) - } - } - - - - return null; - }*/ -} diff --git a/app/src/main/java/model/ColoredCellIterator.java b/app/src/main/java/model/ColoredCellIterator.java new file mode 100644 index 0000000..010e0c7 --- /dev/null +++ b/app/src/main/java/model/ColoredCellIterator.java @@ -0,0 +1,46 @@ +package model; + + + +import javafx.scene.paint.Color; +import util.SetUtil; + +import java.util.*; + +public class ColoredCellIterator implements Iterator<Cell> { + + private final Color color; + Set<Cell> visitedCells; + Set<Cell> pendingCells=new HashSet<Cell>(); + + + public ColoredCellIterator(Cell startCell){ + this.color=startCell.getColor(); + this.visitedCells= new HashSet<Cell>(); + pendingCells.add(startCell); + } + + @Override + public boolean hasNext() { + + return !pendingCells.isEmpty(); + } + + @Override + public Cell next() { + + Cell pendingElement=SetUtil.anyElement(pendingCells); + + for(Cell cell: pendingElement.getNeighbours()){ + if( cell.getColor()==this.color&& !(visitedCells.contains(pendingElement))) + pendingCells.add(cell); + } + + visitedCells.add(pendingElement); + pendingCells.remove(pendingElement); + return pendingElement; + + + + } +} diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java index 3a70a73..a9a72ef 100644 --- a/app/src/main/java/model/DistinctColorGenerator.java +++ b/app/src/main/java/model/DistinctColorGenerator.java @@ -17,7 +17,7 @@ public class DistinctColorGenerator implements ColorGenerator { List<Cell> neighbors = new ArrayList<>(); - System.out.println(neighbors.size()); + //System.out.println(neighbors.size()); List<Color> neighbor_colors = new ArrayList<Color>(); diff --git a/app/src/test/java/model/DistinctColorGeneratorTest.java b/app/src/test/java/model/DistinctColorGeneratorTest.java index fde6971..deb5461 100644 --- a/app/src/test/java/model/DistinctColorGeneratorTest.java +++ b/app/src/test/java/model/DistinctColorGeneratorTest.java @@ -19,7 +19,7 @@ class DistinctColorGeneratorTest { @Test void testNextColorWithTooFewAvailableColor() { - DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator(Color.RED, List.of(Color.RED)); + DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator( List.of(Color.RED),Color.RED); grid.color(colorGeneratorOne); assertThat(grid.getCell(0,0).getColor()).isEqualTo(Color.RED); assertThat(grid.getCell(1,1).getColor()).isEqualTo(Color.RED); @@ -29,7 +29,7 @@ class DistinctColorGeneratorTest { @Test void testNextColorWithEnoughAvailableColor(){ Color defaultColor = Color.BLACK; - DistinctColorGenerator colorGenerator = new DistinctColorGenerator(defaultColor, List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE)); + DistinctColorGenerator colorGenerator = new DistinctColorGenerator( List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE),defaultColor); grid.color(colorGenerator); for(Cell cell: grid){ assertThat(cell.getNeighbours().stream().map(c-> c.getColor())).doesNotContain(cell.getColor()); -- GitLab