package model; import javafx.beans.property.Property; import javafx.scene.paint.Color; import java.util.Iterator; import java.util.List; public interface Cell { /** * Change the color of this {@code Cell} to {@code color}. * @param color the color this {@code Cell} is changed to. */ void setColor(Color color); /** * Return the color of this {@code Cell}. * @return the current color of this {@code cell}. */ Color getColor(); /** * A cell is placed somewhere on a grid. Its neighbours thus depend on the underlying grid. * * @return the list of cell that are neighbours of this{@code Cell}. */ List<Cell> getNeighbours(); /** * Update the list of neighbours of this {@code Cell}. * @param cells a list of cells that are the neighbours of this {@code cell} * int the underlying grid. */ void setNeighbours(List<Cell> cells); /** * Returns this {@link Cell}'s property. * * @return this {@link Cell}'s property */ Property<Color> getColorProperty(); }