public static IEnumerable <PathInfo <Coord> > AStarSearchStraight(Coord start, Coord goal, Func <Coord, IEnumerable <Coord> > walkableNeighbors) { //use straightness as tie breaker float h(Coord a) => GridCostFunctions.DiagonalDistance(a, goal) + GridCostFunctions.Straightness(start, a, goal) * 0.001f; return(Algorithms.AStarSearch(start, goal, walkableNeighbors, CostToNeighbor, h, Coord.Null)); }
public static IEnumerable <PathInfo <Coord> > AStarSearch(Coord start, Coord goal, Func <Coord, IEnumerable <Coord> > walkableNeighbors) { float h(Coord a) => GridCostFunctions.DiagonalDistance(a, goal); return(Algorithms.AStarSearch(start, goal, walkableNeighbors, CostToNeighbor, h, Coord.Null)); }