Reputation: 3309
I'm implementing NxN puzzels in Java 2D array int[][] state. am required to use the Manhattan heuristic in the following way:
the sum of the vertical and horizontal distances from
the current node to the goal node/tile
+(plus)
the number of moves to reach the goal node from the initial position
At the moment I don't know how to go further. Am a beginner in puzzle game programming with 2D arrays so am having trouble to understand certain concepts. How can I write this code in Java?
Upvotes: 14
Views: 60455
Reputation: 28268
This is more a math question, but anyways the Manhattan distance is the sum of the absolute values of the horizontal and the vertical distance
int distance = Math.abs(x1-x0) + Math.abs(y1-y0);
More info: http://en.wikipedia.org/wiki/Taxicab_geometry
Upvotes: 56