Implements the A* algorithm to find a path from any two given nodes.
In a fully-observable environment where there are both pathable and blocked nodes,
an agent must find a good path from their starting node to the goal node.
The agent must use the A* algorithm to determine its path. For this program,
you must use the Manhattan method for calculating the heuristic.