public static IHeuristicEstimate СreateHeuristic(HeuristicType heuristicType, TieBreakerType tieBreaker, Vector2Int startPos, float heuristicCoeff) { switch (heuristicType) { case HeuristicType.Euclidean: return(new EuclideanDistanceHeuristic(СreateTieBraker(tieBreaker, startPos), heuristicCoeff)); case HeuristicType.Manhattan: return(new ManhattanDistanceHeuristic(СreateTieBraker(tieBreaker, startPos), heuristicCoeff)); default: return(new NoneHeuristic()); } }
private static IHeuristicTieBarker СreateTieBraker(TieBreakerType tieBreaker, Vector2Int startPos) { switch (tieBreaker) { case TieBreakerType.ScaleHUpwards: return(new ScaleHUpwardTieBrak()); case TieBreakerType.Directed: return(new DirectionalTieBraker(startPos)); default: return(new NoneTieBrak()); } }
public void OnTieBrakerDropdownValueChange(int index) { breakerType = (TieBreakerType)index; }