Exemple #1
0
        public void Update()
        {
            if (Neighbours == null)
            {
                Neighbours = Grid.GetCellsAround(GridX, GridY);
            }

            var neighboursAlive = Neighbours.Count(cell => cell.IsAlive);

            if (!IsAlive)
            {
                IsAliveNext = false;

                if (neighboursAlive == 3)
                {
                    IsAliveNext = true;
                }
            }
            else
            {
                IsAliveNext = true;

                if (neighboursAlive > 3)
                {
                    IsAliveNext = false;
                }
                if (neighboursAlive < 2)
                {
                    IsAliveNext = false;
                }
            }

            IsMarked = IsAlive != IsAliveNext;
        }
Exemple #2
0
 public List <Cell> GetNeighbours()
 {
     return(Neighbours ?? (Neighbours = Grid.GetCellsAround(GridX, GridY)));
 }