I am working on a Mathematics/Data Science project for the game Settlers of Catan and ran into a very interesting Math problem that has me stumped(knowledge of the game is not necessary to solve this problem). I would like to write a program that allows me to calculate the distance between any two vertices on a 19 Hexagon Grid where one unit is defined as a line that connects any two vertices without passing through a third vertex and does not deviate from the grid.
I need some sort of coordinate system that I can map my data to that will allow me to use a function to find distance. The alternative is embedding the distance between any two points on the grid by-hand (1485 operations), which sounds a bit tedious.
I have been working with a 3-ring system, in which vertices are numbered around each of the 3 rings; but this is only helpful if the points in consideration are within the same ring.

An answer : the 3D-like coordinate system described in the figure below (which doesn't deserve much commentary).
For example the distance between points with coordinates
$$(a,b,c)=(0,1,0) \ \text{and} \ (a',b',c')=(3,1,-2)$$
(materialized as a dotted path) can be taken as :
$$|a'-a|+|b'-b|+|c'-c| \ = \ 3+0+2 \ = \ 5.$$
(mathematically speaking, it is a $L^1$ distance.)