private IEnumerable <BoardPoint> EnumerateNeighbors(BoardPoint point) { yield return(point.ShiftLeft()); yield return(point.ShiftRight()); yield return(point.ShiftTop()); yield return(point.ShiftBottom()); }
public bool IsNearToElement(BoardPoint point, BoardElement element) { if (point.IsOutOfBoard(Size)) return false; return HasElementAt(point.ShiftBottom(), element) || HasElementAt(point.ShiftTop(), element) || HasElementAt(point.ShiftLeft(), element) || HasElementAt(point.ShiftRight(), element); }
public int GetCountElementsNearToPoint(BoardPoint point, BoardElement element) { if (point.IsOutOfBoard(Size)) return 0; //GetHashCode() in classic MS.NET for bool returns 1 for true and 0 for false; return HasElementAt(point.ShiftLeft(), element).GetHashCode() + HasElementAt(point.ShiftRight(), element).GetHashCode() + HasElementAt(point.ShiftTop(), element).GetHashCode() + HasElementAt(point.ShiftBottom(), element).GetHashCode(); }