private Cell GetNextGenerationCell()

in GameOfLife/ViewModel/PetriDish.cs [121:149]


        private Cell GetNextGenerationCell(int i, int j) // OPTIMIZED
        {
            var currentCell = currentCells[i, j];

            var isAlive = currentCell.IsAlive;
            var neighborsCount = CountNeighbors(i, j);

            var cell = nextGenerationCells[i, j];
            if (!isAlive)
            {
                if (neighborsCount == 3)
                {
                    cell.IsAlive = true;
                    cell.Age = 0;
                }
            }
            else if (neighborsCount == 2 || neighborsCount == 3)
            {
                cell.IsAlive = true;
                cell.Age = currentCell.Age + 1;
            }
            else
            {
                cell.IsAlive = false;
                cell.Age = 0;
            }

            return cell;
        }