Не уверен с алгоритмом Дейкстры

С помощью многих людей на этом сайте у меня есть замечательный код. К сожалению, алгоритм Дейкстры не работает. Предполагается найти кратчайшее расстояние между ИИ и игроком и приблизить ИИ к игроку. Я не знаю, как заставить это вернуть путь и как подвинуть ИИ на один шаг ближе к игроку или даже если он работает так, как я планировал.

def search(x, y):
    if maze[x][y] == visblock():
        return False
    elif maze[x][y] == 3:
        return False
    elif maze[x][y] == player():
        print("Found Player")
        return True

    maze[x][y] = 3

    if ((x < 5 - 1 and search(x+1, y))
        or (y > 0 and search(x, y+1))
        or (x > 0 and search(x-1, y))
        or (y < 5-1 and search(x, y-1))):
            return True

    return False

1 ответ

Алгоритм Дейкстры для кратчайшего пути от А до В работает, даже если ваш код не работает. На странице Википедии есть код, который вы сможете перевести.

Поскольку вы можете вычислить довольно точное минимальное расстояние от каждой точки до цели, вам, вероятно, будет лучше с улучшением A * на Дейкстре.

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