A* Pathfinding Algorithm (Coding Challenge 51 - Part 1)