Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определение связанности группы [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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо