constructPath method
Reconstructs path from state that is already searched.
This function assumes that the searching algorithm already end up on target.
If There is no valid path, it will throw error.
Implementation
List<GridPoint> constructPath(S state) {
List<GridPoint> path = [];
var current = state.target;
while (current != state.start) {
path.add(current);
current = state.parents[current]!;
}
path.add(state.start);
return path;
}