Does the OP want to know what the chances are of you as a player winning two in a row are? Or what the chances are of either player winning two in a row?

You have the longest non-returning path.
The returning path can be slightly longer.
I'm not sure which order of 7 and 8 you are using, but I see one path that is too short to use.
There are no (chess) Knight moves, like 7-5 and 2-8 (using the correct 7 8 labeling).
If you are using the original 8 7 labeling you are not using knight moves, but too many 1-4 type moves.
Clue for those still working on this the longest total length is 47.97, and from that you can get the distribution of city-city distances used, and work out the path.
Try my next, harder puzzle just posted.
Doh... mixed up 7 and 8 on the returning...

Hmm... just noticed that the coordinates listed for points 7 (4,0) and 8 (2,0) are switched on the graph. It labels 7 at (2,0) and 8 at (4,0). Which set is correct?

Just realized the section:
a1=sqrt ((a2-b2)*(a2-b2));
b1=sqrt ((c2-b2)*(c2-b2));
c1=sqrt ((c2-d2)*(c2-d2));
d1=sqrt ((a2-d2)*(a2-d2));
should actually be:
a1=sqrt ((a2-d2)*(a2-d2));
b1=sqrt ((a2-b2)*(a2-b2));
c1=sqrt ((c2-b2)*(c2-b2));
d1=sqrt ((c2-d2)*(c2-d2));
I don't think it really it effects the outcome, since it stayed in the same order. But still.

I'm sure there are more elegant ways of coding this, and it only gives back the first longest set it finds (it won't return 8,21,45,1 after it finds 1,8,21,45) so I'm sure there is more than one answer.