You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
774 B
34 lines
774 B
package de.edu.hsfulda.ccip.tdd.withdependencies;
|
|
|
|
import java.util.Collection;
|
|
import java.util.LinkedList;
|
|
import java.util.stream.Collectors;
|
|
|
|
public class GameOfLifeCell {
|
|
|
|
private GameOfLifeStatus status;
|
|
private final Collection<GameOfLifeCell> neighborStates = new LinkedList<>();
|
|
private GameOfLifeStatus nexState;
|
|
|
|
public GameOfLifeCell(GameOfLifeStatus status) {
|
|
this.status = status;
|
|
}
|
|
|
|
public void addNeighbor(GameOfLifeCell neighbor) {
|
|
neighborStates.add(neighbor);
|
|
}
|
|
|
|
public void caclulateNextState() {
|
|
nexState = status
|
|
.calculateNextBy(neighborStates.stream().map(GameOfLifeCell::getState).collect(Collectors.toList()));
|
|
}
|
|
|
|
public GameOfLifeStatus getState() {
|
|
return status;
|
|
}
|
|
|
|
public void updateState() {
|
|
status = nexState;
|
|
}
|
|
|
|
}
|