Select Git revision
WireWorldState.java
Forked from
NAVES Guyslain / Game of life Template
2 commits behind, 10 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
WireWorldState.java 1.03 KiB
package model.automata;
import javafx.scene.paint.Color;
import model.State;
import java.util.List;
public enum WireWorldState implements State<WireWorldState> {
DEAD, WIRE, BLUE, RED;
@Override
public Color getColor() {
return switch (this) {
case DEAD -> Color.BLACK;
case WIRE -> Color.GOLD;
case BLUE -> Color.BLUE;
case RED -> Color.RED;
};
}
@Override
public WireWorldState cycle() {
return switch (this) {
case DEAD -> WIRE;
case WIRE -> BLUE;
case BLUE -> RED;
case RED -> DEAD;
};
}
@Override
public WireWorldState update(List<WireWorldState> neighbours) {
return switch (this) {
case DEAD -> DEAD;
case WIRE -> {
int countBlues = State.count(BLUE, neighbours);
yield (countBlues == 1 || countBlues == 2)? BLUE: WIRE;
}
case BLUE -> RED;
case RED -> WIRE;
};
}
}