Требуется алгоритм уничтожения блоков (сродни Bomberman) - PullRequest
0 голосов
/ 09 июля 2011

В настоящее время я просто использую два битовых вектора, один для красных блоков и один для синих.Блоки укладываются поверх другого в сетке 10х10.Когда взрыв происходит от бомбы только для красных блоков в вертикальном направлении, я просто делаю простую математику и проверяю битовый вектор на предмет попадания, поэтому худшее, с чем мне приходится иметь дело, - это 10 проверок и быстрый поиск.

Теперь я хочу сделать так, чтобы бомба могла уничтожить все подключенные красные блоки из начального блока (это означает вертикальное, горизонтальное или диагональное расстояние друг от друга).прочь подойти к этому?Распределение является случайным, но обычно что-то вроде 40/60.Как я уже сказал, мне нужно работать с битвектором, идентификаторами блоков и типами блоков, на которых они основаны.

Лучше всего проверять 1 или 2 внешних кольца блоков каждыйкадр в отдельном потоке для разделения работы (т. е. 20 проверок на кадр) или есть более элегантный способ сделать это?

1 Ответ

2 голосов
/ 09 июля 2011

Теперь я хочу сделать так, чтобы бомба могла уничтожить все подключенные красные блоки из стартового блока

Похоже на работу для алгоритма заливки .

Распределение является случайным, но обычно что-то вроде 40/60.

Честно говоря, я не понимаю, что вы имеете в виду.

Что касается реализациидетали, они будут отличаться в зависимости от языка.

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