From 2f07e688c0a3ef7bd887a29893f11064e85790a2 Mon Sep 17 00:00:00 2001 From: EL GAOUAL Zaid <zaid.el-gaoual@etu.univ-amu.fr> Date: Tue, 15 Nov 2022 17:38:15 +0100 Subject: [PATCH] DistinctColorGenerator --- .../java/model/DistinctColorGenerator.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 app/src/main/java/model/DistinctColorGenerator.java diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java new file mode 100644 index 0000000..3d9bd1e --- /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 -- GitLab