diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java new file mode 100644 index 0000000000000000000000000000000000000000..3d9bd1ee25c8437039a8ab659777d9f71d5788c9 --- /dev/null +++ b/app/src/main/java/model/DistinctColorGenerator.java @@ -0,0 +1,34 @@ +package model; + +import javafx.scene.paint.Color; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class DistinctColorGenerator implements ColorGenerator { + private List<Color> colors; + private Color defaultColor; + + public DistinctColorGenerator(List<Color> colors, Color defaultColor) { + this.colors = colors; + this.defaultColor = defaultColor; + } + + @Override + public Color nextColor(Cell cell) { + List<Cell> neighbours = cell.getNeighbours(); + List<Color> neighbourscolor = new ArrayList<>(); + for (Cell neighbour : neighbours) {neighbourscolor.add(neighbour.getColor());} + int i = 0, j = 0; + while (colors.get(i) == neighbourscolor.get(j)) { + if (j == neighbourscolor.size() - 1 && i == colors.size() - 1) {return defaultColor;} + if (j == neighbourscolor.size() - 1) { + j=0; + i+=1; + continue;} + j+=1; + } + return colors.get(i); + } +} \ No newline at end of file