Как я могу определить, находится ли поле 2d карты «в ловушке» вокруг столкновений в JavaScript - PullRequest
0 голосов
/ 30 ноября 2018

Как и в заголовке, могу ли я как-то определить, не заблокировано ли поле карты вокруг столкновений?Поэтому моя идея состоит в том, чтобы создать функцию, в которой в качестве параметров я ставлю x, y поля, которое я хочу проверить.Если поле карты (по которому мы можем пройти) захвачено вокруг столкновений, оно возвращает true, если не false.Я думал о том, чтобы сначала получить координаты вокруг определенного x, y, определить, является ли это столкновением, если нет, добавить еще один слой координат поверх того, который я сгенерировал, и так далее.Но я действительно не знаю, как сделать это правильно, чтобы оно не стало огромным, если вокруг нет столкновений.

У меня есть какое-то изображение здесь:

EXAMPLE

Как вы можете видеть здесь, у меня есть 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);

Но, может быть, есть лучший способ сделать это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...