Explain the A* search.
- expands most promising paths first
- avoids expanding paths that are, from the beginning, already expensive
- at each step it picks the node using the sum of two other parameters:
g = the movement cost to move from the starting point to a given square
h = the estimated movement cost to move from that given square on the grid to the final destination.