Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void checkPoint(Point point) {
- if (point.x > 0 && !checked[point.x - 1][point.y])
- checkNeighbour(point, new Point(point.x - 1, point.y));
- if (point.x < matrixSize - 1 && !checked[point.x + 1][point.y])
- checkNeighbour(point, new Point(point.x + 1, point.y));
- if (point.y > 0 && !checked[point.x][point.y - 1])
- checkNeighbour(point, new Point(point.x, point.y - 1));
- if (point.y < matrixSize - 1 && !checked[point.x][point.y + 1])
- checkNeighbour(point, new Point(point.x, point.y + 1));
- checked[point.x][point.y] = true;
- }
- // рассчитать расстоние до соседней точки
- private void checkNeighbour(Point point, Point neighbour) {
- // расстояние до текущей + расстоние до соседней
- int distance = distances[point.x][point.y] + matrix[neighbour.x][neighbour.y];
- // если меньше - перезаписываем расстоние и родителя
- if (distance < distances[neighbour.x][neighbour.y]) {
- distances[neighbour.x][neighbour.y] = distance;
- parents[neighbour.x][neighbour.y] = point;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement