package model.automata; import javafx.scene.paint.Color; import model.State; import java.util.List; public enum BriansBrainState implements State<BriansBrainState> { ON, OFF, DYING; @Override public Color getColor() { return switch (this) { case ON -> Color.WHITE; case OFF -> Color.BLACK; case DYING -> Color.BLUE; }; } @Override public BriansBrainState next() { return switch (this) { case ON -> DYING; case OFF -> ON; case DYING -> OFF; }; } @Override public BriansBrainState update(List<BriansBrainState> neighbours) { return switch (this) { case ON -> DYING; case DYING -> OFF; case OFF -> { int count = State.count(ON, neighbours); yield count==2 ? ON : OFF; } }; } }