diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java index 0ce83d70767482eb3259b70e16d50e95973968e6..856b6054f53aacb95f2bf91a7197f9b0d6b0d911 100644 --- a/app/src/main/java/model/ArrayGrid.java +++ b/app/src/main/java/model/ArrayGrid.java @@ -1,5 +1,7 @@ package model; +import java.util.Iterator; + public class ArrayGrid implements Grid{ private Cell[][] cells; @@ -33,6 +35,6 @@ public class ArrayGrid implements Grid{ } } public Iterator<Cell> iterator(){ - return new CellGridIterator(this); + return (Iterator<Cell>) new CellGridIterator(this); } } diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java index 04199f3008a467658dbb1ab3bfcd9d41297523f4..9d0468341fe169d7f294d84e4b0c31d3e989905e 100644 --- a/app/src/main/java/model/CellGridIterator.java +++ b/app/src/main/java/model/CellGridIterator.java @@ -1,6 +1,6 @@ package model; -public class CellGridIterator implements Iterator<Cell>{ +public class CellGridIterator { ArrayGrid grid; int indixRow; int indixColum; diff --git a/app/src/main/java/model/CyclicColorGenerator.java b/app/src/main/java/model/CyclicColorGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..0aec9a40cfb46d507832b45e986970d70a62b8c0 --- /dev/null +++ b/app/src/main/java/model/CyclicColorGenerator.java @@ -0,0 +1,25 @@ +package model; + + +import java.awt.*; +import javafx.scene.paint.Color; +import java.util.List; + +public class CyclicColorGenerator implements ColorGenerator { + List<Color> colors; + + public CyclicColorGenerator(List<Color> colors){ + this.colors=colors; + + } + int count=0; + + + @Override + public Color nextColor(Cell cell) { + count++; + return this.colors.get(count-1); + + } + +} diff --git a/app/src/main/java/model/GrayGrid.java b/app/src/main/java/model/GrayGrid.java index 02cb8ee2f6dbc07f694cc48ba5ea0a095fabe8cd..9e7975da64c39084787f9d8d4f343984c6776b3d 100644 --- a/app/src/main/java/model/GrayGrid.java +++ b/app/src/main/java/model/GrayGrid.java @@ -1,5 +1,7 @@ package model; +import java.util.Iterator; + public class GrayGrid implements Grid{ private final int numberOfRows; @@ -40,4 +42,14 @@ public class GrayGrid implements Grid{ public int getNumberOfColumns() { return numnberOfColumns; } + + @Override + public void color(ColorGenerator colorGenerator) { + + } + + @Override + public Iterator<Cell> iterator() { + return null; + } } diff --git a/app/src/main/java/model/Grid.java b/app/src/main/java/model/Grid.java index 75aacc67512e50adc4a765004d5fed7ab55a39f3..b02c149464004c8e4cd7a62bb0da7924aca58be5 100644 --- a/app/src/main/java/model/Grid.java +++ b/app/src/main/java/model/Grid.java @@ -27,5 +27,6 @@ public interface Grid extends Iterable<Cell> { * @param colorGenerator the generator used to determine the color of each cell. * The new color of {@code cell} is obtained by calling the method {@code nextColor} */ + void color(ColorGenerator colorGenerator); } diff --git a/app/src/main/java/model/Iterator.java b/app/src/main/java/model/Iterator.java deleted file mode 100644 index 98e84279a7f4330ac489442adac27d27b53c9f1e..0000000000000000000000000000000000000000 --- a/app/src/main/java/model/Iterator.java +++ /dev/null @@ -1,6 +0,0 @@ -package model; - -public interface Iterator<Cell> { - - -} diff --git a/app/src/main/java/model/RandomColorGenerator.java b/app/src/main/java/model/RandomColorGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..da3b70b031fe79c52c368d4eb9edbaf3e3cbb805 --- /dev/null +++ b/app/src/main/java/model/RandomColorGenerator.java @@ -0,0 +1,21 @@ +package model; + +import javafx.scene.paint.Color; +import util.RandomUtil; + +import java.util.List; +import java.util.Random; + +public class RandomColorGenerator implements ColorGenerator{ + List<Color> colors; + Random radomGenerator; + + public RandomColorGenerator(List<Color>colors,Random radomGenerator){ + this.colors=colors; + this.radomGenerator=radomGenerator; + } + @Override + public Color nextColor(Cell cell) { + return RandomUtil.randomElement(this.colors, this.radomGenerator); + } +} diff --git a/app/src/main/java/model/SquareCell.java b/app/src/main/java/model/SquareCell.java index 87139cc7dda76c3520648e900570e485725576c4..00c7d6bdbb9ac188e2b322da225eacb9b015ffc1 100644 --- a/app/src/main/java/model/SquareCell.java +++ b/app/src/main/java/model/SquareCell.java @@ -9,17 +9,6 @@ public class SquareCell extends AbstractCell{ private List<Cell> neighbours; - public SquareCell (){ - Cell DEFAULT_CELL_COLOR; - } - public SquareCell(Color color){ - this.setColor(color); - } - public SquareCell(Color color,List<Cell> neighbours ){ - this.setColor(color); - this.neighbours= neighbours; - - } public SquareCell (){ Cell DEFAULT_CELL_COLOR; diff --git a/app/src/main/java/model/UniformColorGenerator.java b/app/src/main/java/model/UniformColorGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..12a2efd3c705a333c73e227cfda289b66ebdfb45 --- /dev/null +++ b/app/src/main/java/model/UniformColorGenerator.java @@ -0,0 +1,14 @@ +package model; + +import javafx.scene.paint.Color; + +public class UniformColorGenerator implements ColorGenerator{ + Color color; + public UniformColorGenerator(Color color){ + this.color=color; + } + @Override + public Color nextColor(Cell cell) { + return this.color; + } +} diff --git a/app/src/main/java/model/UniformExceptOneGenerator.java b/app/src/main/java/model/UniformExceptOneGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..e641dcc742cf6aab842abd2af842876e70cdf16c --- /dev/null +++ b/app/src/main/java/model/UniformExceptOneGenerator.java @@ -0,0 +1,26 @@ +package model; + +import javafx.scene.paint.Color; + +public class UniformExceptOneGenerator implements ColorGenerator{ + Color uniformColor; + Color exceptionColor; + public UniformExceptOneGenerator(Color uniformColor, Color exceptionColor){ + this.uniformColor=uniformColor; + this.exceptionColor=exceptionColor; + + } + + int count=0; + public Color nextColor(Cell cell) { + + count++; + if(count==2){ + return this.exceptionColor; + } + + return this.uniformColor; + } + + +} diff --git a/app/src/main/java/util/RandomUtil.java b/app/src/main/java/util/RandomUtil.java new file mode 100644 index 0000000000000000000000000000000000000000..0936da85df137e3b43d0cf29f70d0f769c8176fb --- /dev/null +++ b/app/src/main/java/util/RandomUtil.java @@ -0,0 +1,17 @@ +package util; + +import java.util.List; +import java.util.Random; + + public class RandomUtil { + + private RandomUtil(){}; + + public static <T> T randomElement(T[] elements, Random random){ + return elements[random.nextInt(elements.length)]; + } + public static <T> T randomElement(List<T> elements, Random random){ + + return elements.get(random.nextInt(elements.size())); + } +} diff --git a/app/src/main/java/view/MatrixPane.java b/app/src/main/java/view/MatrixPane.java index f20ed0348c4905cb696c5158d80c6710e68109b7..2843295c2523e1bcf389a15d1d1459d87a864fa8 100644 --- a/app/src/main/java/view/MatrixPane.java +++ b/app/src/main/java/view/MatrixPane.java @@ -8,6 +8,7 @@ import javafx.scene.layout.GridPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.util.Duration; +import model.ArrayGrid; import model.Cell; import model.GrayGrid; import model.Grid; @@ -29,7 +30,7 @@ public class MatrixPane extends GridPane { this.numberOfColumns = numberOfColumns; this.numberOfRows = numberOfRows; // TODO replace by new ArrayGrid(numberOfRows, numberOfColumns) - cellGrid = new GrayGrid(numberOfRows, numberOfColumns); + cellGrid = new ArrayGrid(numberOfRows, numberOfColumns); initMatrix(); }