Beispiel #1
0
        public int GetNextValue()
        {
            var coordinates = GetNextCoordinate();
            var nextPoint   = new SpiralGridPoint()
            {
                index = _spiralGrid.Count,
                x     = coordinates.Item1,
                y     = coordinates.Item2
            };
            var adjacent = GetPriorAdjacentPoints(nextPoint);
            var sum      = adjacent.Sum(p => p.value);

            nextPoint.value = sum;
            _spiralGrid.Add(nextPoint);

            return(sum);
        }
Beispiel #2
0
 private IEnumerable <SpiralGridPoint> GetPriorAdjacentPoints(SpiralGridPoint point)
 {
     return(_spiralGrid.Where(p => p.index < point.index &&
                              Math.Abs(point.x - p.x) <= 1 &&
                              Math.Abs(point.y - p.y) <= 1));
 }