public void AStarWithDiagonalDistance() { DiagonalDistanceHeuristic <Vector> heuristic = new DiagonalDistanceHeuristic <Vector>(); AStarSearch <Vector> aStarSearch = new AStarSearch <Vector>(_problem, heuristic); SearchResult <Vector> searchResult = aStarSearch.Search(); List <Vector> states = searchResult.States.ToList(); Console.WriteLine("AStar with diagonal"); Console.WriteLine($"OpenList:{aStarSearch.OpenList.Count}"); Console.WriteLine($"ClosedList:{aStarSearch.ClosedList.Count}"); foreach (var state in states) { Console.WriteLine(state); } }
private Heuristic SelectProperHeuristic() { if (MustUseHeuristic()) { if (checkBoxDiagonalMove.Checked) { return(DiagonalDistanceHeuristic.GetDiagonalDistanceHeuristic()); } else { return(ManhattanDistanceHeuristic.GetManhattanDistanceHeuristic()); } } else { return(NullHeuristic.GetNullHeuristic()); } }