Minor update that fixed a problem with the heuristic.
My last update was technically a greedy first search algorithm, and while it worked (very nicely in most cases) it would often sacrifice path efficiency and I wanted a straight line. So I researched A* some more. Apparently, the cost to move to the node (the heuristic) is a little more complicated than I had it originally. Instead of only including manhattan distance and move cost, the nodes also need to have the value of their parent node's heuristic. Like before, these values are represented with the purple text in the top right of each box. You will notice now that as the 'player' box moves around, it updates the heuristic value of children boxes to include the parents heuristic as well.
Confusing, but just try it out. You will see a major difference in the behavior of this walk pattern. It often takes more searches than my last version but it also finds the best route pretty much without fail now.