public Path calculatePath(Point from, Point to) { startPoint.x = from.x; startPoint.y = from.y; startPoint.weight = 0; startPoint.parent = null; destPoint.x = to.x; destPoint.y = to.y; destPoint.weight = 0; open = new PriorityQueue(1); open.add(startPoint); dest = to; for(int i = 0; i <= mapsize; i++) for(int j = 0; j <= mapsize; j++) closed[i][j] = 0; generateNodes(from); curPoint = startPoint; closed[curPoint.x][curPoint.y] = 1; //find the path for(;;) { curPoint = open.remove(); closed[curPoint.x][curPoint.y] = 1; if(curPoint.x == destPoint.x && curPoint.y == destPoint.y) { break; } generateNodes(new Point(curPoint.x, curPoint.y)); } //create the path for(;;) { calcedPath.addPoint(new Point(curPoint.x, curPoint.y)); if(curPoint.parent == null) break; curPoint = curPoint.parent; } return calcedPath; }