In a world populated by "recursively" defined hexagons with costs associated with moving from one hexagon to an adjacent hexagon, this finds the optimal route from a starting location to any location in the hexagon field. It is a slick example of dynamic programming. Completed process of transition from Python 2 to Python 3.