У меня есть игра, в которой вам нужно передвигаться по карте, собирающей золото, а затем перейдите к выходу. В настоящее время я пытаюсь написать AI, который будет играть в эту игру, но я хочу знать, какой алгоритм я должен использовать для поиска ближайшего экземпляра объекта. Например, ближайший кусок золота или ближайший неизвестный квадрат карты. Проблема в том, что есть стены, которые игрок не может перемещать, поэтому вместо того, чтобы просто найти ближайший объект, мне нужно найти тот, на котором есть самый короткий маршрут. Есть ли алгоритм, который может это сделать?Поиск ближайшей точки на сетке с препятствиями
1
A
ответ
5
Алгоритм, который вы ищете, называется алгоритмом поиска *. Это самый лучший алгоритм поиска, который работает, начиная с начальной точки и создавая ряд возможных путей (за исключением прохождения препятствий, поскольку это не возможные пути), а затем забирая эти пути, чтобы найти наименьшую стоимость. В вашем случае вам нужно настроить счет, уменьшив стоимость на основе объектов вдоль пути и увеличив стоимость по расстоянию.
Там какая-то информация, которая поможет вам с ней здесь:
Там есть отличная интерактивная демо здесь (код также на GitHub): http://qiao.github.io/PathFinding.js/visual/
Другие ресурсы:
Смежные вопросы
- 1. Поиск ближайшей точки с Theano
- 2. Поиск путей DFS с препятствиями
- 3. Поиск ближайшей точки из другого фрейма данных
- 4. Поиск ближайшей точки к указанному пользователем адресу
- 5. Поиск ближайшей точки к заданной точке
- 6. Получение ближайшей точки на плоскости
- 7. Поиск ближайшей точки, за исключением последней точки LibGDX Java
- 8. Поиск ближайшей точки из множества точек на плоскости
- 9. Точки с использованием PCL итеративной ближайшей точки
- 10. Поиск ближайшей точки с нижней границей ... но данные не отсортированы
- 11. Итеративная библиотека ближайшей точки
- 12. Определение ближайшей точки сетки
- 13. Реализация Итеративной Ближайшей Точки (ICP) на python
- 14. вычислить путь в сетке с препятствиями и моим анализом
- 15. Найти координата ближайшей точки на Polygon стройные
- 16. Ускорение ближайшей точки на гиперболическом параболоидном алгоритме
- 17. Найти расстояние до ближайшей точки в облаке точек на равномерной сетке
- 18. Эффективный способ нахождения ближайшей точки?
- 19. Конфигурирование Итеративной Ближайшей Точки PCL
- 20. Поиск ближайшей пары точек на сфере
- 21. Pathfinding с разрушаемыми препятствиями
- 22. AStar с разрушаемыми препятствиями
- 23. Поиск ближайшей больницы с использованием сохраненной карты
- 24. PHP Array - поиск ближайшей даты
- 25. Поиск ближайшей координаты с другой координатой
- 26. Поиск пути на сетке с GameplayKit
- 27. jQgrid поиск значения на сетке
- 28. Поиск точки на линии
- 29. Каков эффективный способ вычисления ближайшей точки?
- 30. PHP - Оптимизация поиска ближайшей точки в массиве
Как я могу изменить этот алгоритм, чтобы работать, если боты не знают всю карту? Только область вокруг себя и любая область, к которой она была ранее. – CountBale
@CountBale Вы должны хотя бы знать, что это за пункт назначения. Если вы просто изучаете карту, чтобы найти свои ресурсы (например, Gold), я бы предложил запустить ваш алгоритм несколько раз, каждый раз произвольно выбирая координату на карте, чтобы перейти. После того, как будет обнаружено достаточное количество вашей карты, начните поиск пути к вашим фактическим ресурсам. –