Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Calculating Manhattan Distance

Tags:

java

algorithm

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?

like image 952
Eddy Freeman Avatar asked Nov 22 '11 09:11

Eddy Freeman


1 Answers

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

like image 61
Otto Allmendinger Avatar answered Nov 13 '22 05:11

Otto Allmendinger