private IEnumerable <BoardPoint> EnumerateNeighbors(BoardPoint point)
        {
            yield return(point.ShiftLeft());

            yield return(point.ShiftRight());

            yield return(point.ShiftTop());

            yield return(point.ShiftBottom());
        }
 private bool HasElementAt(BoardPoint point, params BoardElement[] elements)
 {
     return(elements.Any(elem => HasElementAt(point.X, point.Y, elem)));
 }