An implementation of the A* path finding algorithm