I'm trying to create a game with a hex based map with the points at the top. I have most of it working, however the path finding is being a little awkward. The heuristic I'm using is called euclidian I believe and is like so:
var dx:Number = destinationNode.c - node.c; var dy:Number = destinationNode.r - node.r; return Math.sqrt((dx * dx) + (dy * dy));
Node is the node the unit is currently on, c is the nodes column number and r is its row number. Im using these as a simpler x and y coords. I'm trying to limit the unit to 3 hex moves in one round so initially I thought it'd be as simple as "IF returned heuristic < 3 unit can move to that hex" however its not working out quite like that. As you can see in this pic, the bottom right selected hex with the "1 + 9 = 3.162277" is moveable to in 3 moves, however the hex with "9 + 1 = 3.162277" on the far right would need 4 moves to reach it. Can anyone offer any advice on how to make this work?
EDIT: My problem was being caused because i was using a Cartesian coordinate system and was just staggering every other Y coord. Fixed this by making the Y axis go down at a 60 degree angle. Thanks to amitp for the links that showed me what I was doing wrong.