Exemple #1
0
        public override IEnumerable <AbstractLifeObject> GetNeighbors(AbstractLifeObject lifeObject)
        {
            var(objectRow, objectCol) = GetLocation(lifeObject);

            for (var row = objectRow - 1; row <= objectRow + 1; row++)
            {
                for (var col = objectCol - 1; col <= objectCol + 1; col++)
                {
                    if (row == objectRow && col == objectCol)
                    {
                        continue;
                    }
                    if (row < 0 || col < 0)
                    {
                        continue;
                    }
                    if (row >= Rows || col >= Cols)
                    {
                        continue;
                    }

                    yield return(LifeObjects[row, col]);
                }
            }
        }
Exemple #2
0
        private (int row, int col) GetLocation(AbstractLifeObject lifeObject)
        {
            for (var row = 0; row < Rows; row++)
            {
                for (var col = 0; col < Cols; col++)
                {
                    if (LifeObjects[row, col].Equals(lifeObject))
                    {
                        return(row, col);
                    }
                }
            }

            throw new ArgumentException("Grid does not contain this life object");
        }
Exemple #3
0
 public abstract IEnumerable <AbstractLifeObject> GetNeighbors(AbstractLifeObject obj);