This was the second project in CS580: Artificial Intelligence in Games. The requirements were to implement A* with visual improvements – rubberbanding and path smoothing.
The most rewarding part of this project was implementing the Floyd Warshall algorithm to calculate all possible paths (extra credit.)
The most challenging part of this project was implementing the path smoothing as I was calculating the Catmull-Rom spline incorrectly (doh!)