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));
        }
Example #2
0
        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);
        }
Example #3
0
 public void Setup()
 {
     _aliveCenterCellRequirement = new InitialStateRequirement(new HashSet <CellState> {
         CellState.Alive
     });
 }