private DirectionEnum MoveOnBorder(LatticePoint currCenter, DirectionEnum direction) { var oneForward = currCenter.Move(direction, 1); var directionLeft = direction.Rotate(1); var forwardLeft = oneForward.Move(directionLeft); if (!queriedPoints[true].Contains(forwardLeft)) { return(directionLeft); } var directionRight = direction.Rotate(-1); var forwardRight = oneForward.Move(directionRight); if (queriedPoints[true].Contains(forwardRight)) { return(directionRight); } return(direction); }