private Couple <int> AStarTreeSearch() { Console.WriteLine("A* Tree Search:"); SortedList <AStarTreeNode> openedNodes = new SortedList <AStarTreeNode>() { new AStarTreeNode(distanceMethod, 0, startPosition) }; int minSteps = -1; int examinedNodes = 0; while (openedNodes.Count > 0) { examinedNodes++; AStarTreeNode currentNode = openedNodes[0]; openedNodes.RemoveAt(0); if (IsGoal(currentNode)) { minSteps = currentNode.DistanceFromRoot; break; } openedNodes.AddAll(GetSuccessors(currentNode)); } return(new Couple <int>(minSteps, examinedNodes)); }