Lately I’ve been experimenting with map algorithms. I have three starting points:| www.redblobgames.com
Interactive tutorial for A*, Dijkstra's Algorithm, and other pathfinding algorithms| www.redblobgames.com