Правила по ходу те же. Да, у нас тоже нельзя использовать уже захваченные точки, т. е. точки, которые уже закрашены.
Вопросы.
1) Ты писал про And/Or, как тебе определить с помощью And/Or, есть ли в двоичной записи числа 140 (128+8+4 или 10001100) единица на чётвёртой позиции (в данном примере есть, т. к. нумерация позиций - спарва), НЕ ПРИБЕГЯ К СТРОКАМ, они слишком медленные. Просто уже написаны процедуры GetDirectionValue(X,Y,X2,Y2) для сложения флагов, GetXByDirFlag, GetYByDirFlag, и две последние со строкой - преобразуют целое число в строку - двоичную запись, а затем уже - то, что требуется.
2)
Но только для своих точек и по внешнему контуру

Поясни?
3) Да всё дело в том, что НЕТ алгоритма определения, замкнута область, или нет. Всё я делаю так. Между каждыми соседними точками одного цвета, если этому не мешают уже проведённые границы, я провожу границы. Получается чушь. Потом я стираю "левые" границы по следующим правилам.
а) Если у трёх точек, находящихся на минимальном расстоянии друг от друга (Треугольник в половину одного квадрата), число линий связи в сумме (у всех трёх) не превышает 7, все их связи следует удалить.
б)Если у точки лишь одна связь, такую связь также следует удалить.
Вот так. А алгоритма вычисления замкнутой области просто НЕТ. Я вообще без понятия о том, как его реализовать. Поэтому с закраской подождём.
в) (в разработке) такая же фигня с целыми квадратами (связей не больше 13).
Только не надо смеяться!
ЗЫ. А метод хранения lnkFlags - очень удобный. Плохо только то, что его постоянно приходится конвертить в строку для выявления его двоичной записи.
ЗЫЫ. Если есть совсем другой способ определения границ - пиши, я всё переделаю, а то этот работает просто посредственно. Неиграбельно. И ещё.
Никак нельзя заставить комп пошевелить мозгами и походить самостоятельно? (типа AI)
There is no knowledge that is not power...
X,C,A,B,C,Z,X,A,B,C,Z....
Многие ли помнят?
