Хорошо, у меня есть структура данных, которая состоит из матрицы связанных узлов, скажем, 10x10.Я хотел бы иметь возможность выбрать любой из этих узлов произвольно, и - оттуда - обработать ряд окружающих узлов, следуя схеме расширения концентрических квадратов (я использовал меньше узлов ниже для целей иллюстрации).Что касается специфики, то реализация будет в Actionscript - но не стесняйтесь отвечать на другом языке :) - и это для игры тральщика (в частности, функция, при которой, если щелкнуть патч без минных квадратов, они - все- очищаться независимо от неправильной формы, вплоть до окружающих мин).Это также будет основано на событиях - отправка по одному для каждого пройденного узла, так что я представляю, что когда итератор или что-то еще сталкивается с полем, содержащим шахту, обход прекращает идти дальше в этом направлении, в то время как остальные продолжаются.Узлы вдвойне связаны с их верхним, правым, нижним и левым соседями, и я не буду против добавления дополнительных ссылок в случае необходимости.Возможно, есть какой-то другой способ сделать это, но я могу придумать несколько вариантов использования такого решения и хотел бы включить его в создаваемую мной среду, поэтому я бы хотел уйти с чем-то, что я могу использовать повторно.
первый:
0 0 0 0 0
0 0 0 0 0
0 0 X 0 0
0 0 0 0 0
0 0 0 0 0
секунда:
0 0 0 0 0
0 XXX 0
0 X 0 X 0
0 XXX 0
0 0 0 0 0
третий:
XXXXX
X 0 0 0 X
X 0 0 0 X
X 0 0 0 X
XXXXX