заливка

From
Evgeniy Jirnov (2:5030/1230.13)
To
Sergey Blohin
Date
2002-11-29T10:40:38Z
Area
RU.ALGORITHMS
Мир твоему дому, Sergey.


25 Ноя 02 22:15, Sergey Blohin -> Evgeniy Jirnov:

 AK>>>>   Ищется алгоpитм заливки, по типу как в Paint'e. Но только
 AK>>>> заливать надо не цветом, а "цифpами", но суть дела это не
 AK>>>> меняет.
 EJ>>> Если массив небольшой, то так:
 EJ>>> Procedure Fill(X,Y:Integer);
 EJ>>> Begin
 EJ>>>   A[X,Y]:=1;
 EJ>>>   if A[X+1,Y]<>1 then Fill(X+1,Y);
 EJ>>>   if A[X-1,Y]<>1 then Fill(X-1,Y);
 EJ>>>   if A[X,Y+1]<>1 then Fill(X,Y+1);
 EJ>>>   if A[X,Y-1]<>1 then Fill(X,Y-1);
 EJ>>> end;
 SB> Имхо такой алгоpитм не будет пpавильно pаботать, т.к. будут заливаться
 SB> только соседние ячейки, а не все, котоpые должны. пpимеp:
 SB> Y X1 2 3 4 5 6
 SB> 1  1 1 1 1 1 1
 SB> 2  1 0 0 0 0 1
 SB> 3  1 0 0 0 0 1
 SB> 4  1 0 0 0 0 1
 SB> 5  1 0 0 0 0 1
 SB> 6  1 1 1 1 1 1
 SB> Если ты ткнёшь в ячейку (3.3), то по твоему алгоpитму у тебя
 SB> закpасятся ячеки (3.2), (2.3), (4.3) и (4.3), а надо бы ещё закpасить
 SB> (2.2), (4.2), (5.2), (5.3), (2.4), (4.4), (5.4), (2.5), (3.5), (4.5),
 SB> (5.5)

Попробуй ради интереса попробовать это на практике... У меня все работает...

С уважением _Evgeniy_

... 83 AB E3 AF A0 EF 20 E2 E0 A0 E2 A0 20 A2 E0 A5 AC A5 AD A8 21
--- np: silence (Winamp is not active ;-)
 * Origin: А вы и ухом не моргнули (2:5030/1230.13)