I'm making a fighting game inspired board game which takes place on a square grid with a 'Manhattan' metric, which is to say, moving diagonally is two moves: up and across, for example.

However, there is a subtle problem with this grid.

Let's say there is one space between you and your opponent. Relative to your opponent, there are eight squares that you could occupy, four that are in 'straight lines' from your opponent, that is, the up, down, left and right squares, and four that are on the diagonals with the vertices of you and your opponent's squares touching.

On the 'straight line' squares, you have one avenue of approach. On the 'diagonals', you have two avenues of approach.

HELP!

I'm sure it's not going to ruin the game, but it's just tearing away at me. Hexagons appear to do the same thing, and pentagons are just ridiculous. The Cairo style pattern has the same problem.

So yeah, I'm quite distressed about this. Could anyone conclusively prove to me that there is no answer to my problem, or supply me with a solution other than having movement measured with a ruler?

EDIT: Seem to have found a solution, just after I posted my cry for help. Regular tessellating TRIANGLES appear to be free of the problem. Has anyone else ever had this problem before?

It could quite easily be more than two player, I suppose. I use the term 'fighting' game loosely - it's more of a dueling deathmatch tactical kind of game. It's about controlling/threatening the game space effectively, sort of like Chess. It's also like a fighting game in that it has a roster of characters with signature abilities. Anyway, I'm getting off-track here. My point is that it must be two dimensional.

I would love to use hexes, but I'm afraid that it does indeed have the same problem. Draw up a hex grid and you will see that this is true.

Anyway I've thought about this a little bit more, and I have a better way of phrasing my requirement of a game board.

For two positions on the space (in which the positions are discrete), I would like for each 'straight' path (the shortest possible path between two points) to be unique in that property. So for the 'grid that doesn't recognise diagonals as adjacent', this does not happen because on the diagonal, there are two 'shortest paths'.

The diagonal movement as 1.5x appears to have the same problem as well. As for my triangle 'solution', it is fine for distance two, but at greater distances there are many cases of multiple 'shortest paths' between two points.