окружение и подсчет количества объектов в сетке - PullRequest
0 голосов
/ 01 мая 2011

Есть квадратная сетка, в которой есть пустые и заполненные блоки.Нет смежных блоков образуют объект.Мой бот может узнать статус соседних 8 блоков (заполнены они или нет).Он может переместиться в соседнюю позицию, если там нет заполненного блока.

Мой код работает для случая, когда нет узких пространств (то есть, когда объекты имеют как минимум 2 пустых блока между ними).Но в случае, когда между двумя блоками может быть один пробел, поскольку мой бот не может узнать, принадлежат ли соседние заполненные блоки одному и тому же или разным объектам, он не может окружить объект.

Есть ли способ обойти эту проблему?

1 Ответ

0 голосов
/ 02 мая 2011

Как насчет этого: когда бот окружает объект, он изменяет свою внутреннюю карту, изменяя квадраты границ объекта с «неизвестного» на «заполненный». Если он оказывается рядом с двумя (или более) проданными блоками, следует обратить внимание на тот, который помечен как «неизвестный» с «заполненным» соседом.

Есть еще несколько специфических случаев, с которыми приходится иметь дело, и многое зависит от некоторых вариантов дизайна - являются ли диагональные соседи "смежными", и если да, то как обращаться с шахматными досками, отмечать ли квадрат перед или после нахождения следующий и так далее. Но комбинация меток на карте и видимых блоков должна дать достаточно информации для того, чтобы бот сохранил свои ориентиры.

...