Ведущий PacMan до точки

Я пытаюсь создать AI PacMan. Последнее, что я отчаянно пытаюсь сделать, - это дать Pacman реальный путь от его текущей позиции к любой другой позиции. Сложность для меня в этом состоит в том, что, как вы все знаете, на его пути могут быть стены.

Вот пример (E= пустое поле, D= точка, P=Pacman, W= стена, X= путь):

Я получил эту карту Pacman в виде массива:

W-W-W-W-W-W-W
W-E-E-E-E-E-W
W-E-P-E-E-E-W
W-E-E-E-E-E-W
W-W-W-W-E-E-W
W-E-D-E-E-E-W
W-W-W-W-W-W-W

И я хочу иметь такой вывод:

W-W-W-W-W-W-W
W-E-E-E-E-E-W
W-E-P-E-E-E-W
W-E-X-X-X-E-W
W-W-W-W-X-E-W
W-E-D-X-X-E-W
W-W-W-W-W-W-W

Поэтому мне нужен массив, который показывает путь вокруг стен.

С помощью следующего кода я смог узнать расстояние до Манхэттена:

public static void ManhattanDist(int currentX, int currentY) {
    int[][] ratings = new int[5][5];
    int value = 0;
    for (int i = 0; i < ratings.length; i++) {
        value = Math.abs(i - currentX);
        for (int j = 0; j < ratings[i].length; j++) {
            ratings[i][j] = value + Math.abs(j - currentY);
            System.out.print("-" + ratings[i][j]);
        }
        System.out.println();
    }
}

Подобным образом я хочу найти реальный путь.

У кого-нибудь есть идеи? Я надеюсь, что вы, люди, можете мне помочь:D

0 ответов

Другие вопросы по тегам