Exemplo n.º 1
0
        public static IPosition Neighbour(this IPosition position, IDirection direction)
        {
            var index = position.Along(direction.Alignment) + direction.Delta.Quantity();

            if (index < -1 || 1 < index)
            {
                return null;
            }

            switch (direction.Alignment)
            {
                case Alignment.Columns:

                    return new Position((Columns) index, position.Row);
                case Alignment.Rows:

                    return new Position(position.Column, (Rows) index);
                default:
                    throw new ArgumentException();
            }
        }