public static Rule GetOvercrowdingRule() { var cellAliveRequirement = new InitialStateRequirement(new HashSet <CellState> { CellState.Alive }); var moreThanThreeNeighboursRequirement = new ActiveNeighbourRequirement(new HashSet <int> { 4, 5, 6, 7, 8 }); var requirements = new List <IRequirement> { cellAliveRequirement, moreThanThreeNeighboursRequirement }; return(new Rule(requirements, CellState.Dead)); }
public void Setup() { var overcrowdingRule = RuleCreator.GetOvercrowdingRule(); var cellAliveRequirement = new InitialStateRequirement(new HashSet <CellState> { CellState.Alive }); var eightNeighboursRequirement = new ActiveNeighbourRequirement(new HashSet <int> { 8 }); var superOvercrowdingRequirements = new List <IRequirement> { cellAliveRequirement, eightNeighboursRequirement }; var superOvercrowdingRule = new Rule(superOvercrowdingRequirements, CellState.Alive); var rules = new Dictionary <int, Rule> { { 1, superOvercrowdingRule }, { 2, overcrowdingRule } }; _ruleSet = new RuleSet(rules); }
public void Setup() { _aliveCenterCellRequirement = new InitialStateRequirement(new HashSet <CellState> { CellState.Alive }); }