![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение связанности группы [D6, WinXP]
webpauk © (2004-08-04 20:14:00)Вопрос, конечно, касается не совсем программирования в Delphi, а скорее теории алгоритмов (или даже теории групп или множеств).
Суть такова:
Есть массив элементов [1..19, 1..19];
Нужно определить в этом массиве связанные группы.
Группа связана тогда, когда одинаковые элементы расположены рядом по вертикали или горизонтали, например:
XX
или
X
X
Группа
X
X
является несвязанной.
Алгоритм следующий:
цикл по строке, цикл по столбцу. Если рядом стоящие элементы одинаковы, новый элемент добавляется в группу.
Столкнулся со следующей проблемой:
1234
1XXXX
2X X
3X XX
Элемент [3,3] - связан с группой, но из-за того, что цикл еще не дошел до элементов с большим номером [3, 4], получается, что элемент [3,3] несвязан.
Может кто знает, как обойти такую проблему?
webpauk (2004-08-04 20:41:00) [1]Sorry
Группа
X
0X
является несвязанной.
webpauk (2004-08-04 20:40:00) [2]Sorry
Группа
X
X
является несвязанной.
webpauk (2004-08-04 20:15:00) [3]Добавлю еще следующее: пытаюсь эту фишку реализовать в игрушке, которую пишу на WinApi+DirectDraw.