Как и в заголовке, могу ли я как-то определить, не заблокировано ли поле карты вокруг столкновений?Поэтому моя идея состоит в том, чтобы создать функцию, в которой в качестве параметров я ставлю x, y поля, которое я хочу проверить.Если поле карты (по которому мы можем пройти) захвачено вокруг столкновений, оно возвращает true, если не false.Я думал о том, чтобы сначала получить координаты вокруг определенного x, y, определить, является ли это столкновением, если нет, добавить еще один слой координат поверх того, который я сгенерировал, и так далее.Но я действительно не знаю, как сделать это правильно, чтобы оно не стало огромным, если вокруг нет столкновений.
У меня есть какое-то изображение здесь:
Как вы можете видеть здесь, у меня есть 6 полей, "замкнутых" вокруг столкновений, и я хочу отметить случайное, в этом примере я выберу поле с желтым кружком на нем.Скажем, это координаты x: 10, y: 10.
. Как я уже говорил, я думал об этих слоях координат вокруг конкретных x, y.И я сделал такую функцию:
function getNeighbors(x, y, layer) {
let coordinates = [];
let a = {x: x, y: y - layer},
b = {x: x - layer, y: y - layer},
c = {x: x + layer, y: y - layer},
d = {x: x - layer, y: y},
e = {x: x + layer, y: y},
f = {x: x, y: y + layer},
g = {x: x - layer, y: y + layer},
h = {x: x + layer, y: y + layer}
coordinates.push(a, b, c, d, e, f, g, h);
console.log(coordinates);
}
getNeighbors(10, 10, 1);
Но, может быть, есть лучший способ сделать это ...