У меня есть координаты x, y, такие как:
до 100х100.
Где myPosition - золото, пункт назначения - зеленый и столкновения - красный.myPosition
- это объект destinations
и collisions
- массив объектов:
let myPosition={x:0,y:0};
let destinations = [{x: 0, y: 5}, {x: 2, y: 0}, {x: 2, y: 2}];
let collisions = [{x: 1, y: 0},{x: 1, y: 1},{x: 1, y: 2},{x: 1, y: 3},{x: 1, y: 4},{x: 2, y: 1},{x: 2, y: 0},{x: 2, y: 1}]
С этим кодом (демонстрационная версия) Я могу найти ближайший пункт назначения, но он невообще не знаю о столкновениях.Я не могу понять, как написать алгоритм, который дополнительно проверил бы на столкновение и дал бы вывод 0,5
в вышеупомянутом scenerio.
Есть также предположение, что мы не можем двигаться по диагонали.
Я нашел этот SO-ответ , который, кажется, дает ответ на мой вопрос, но я не могу заставить его работать с моими входными массивами.