Регистрация | Вход
[code]А здесь программа.
procedure TfrmMain.Button3Click(Sender: TObject);varx1,y1:byte;x,y,i,k,l,m,n:integer;begin memF.Clear; y := 0; k:=0;{это номер очередного кластера, который будет заполнятся} setlength(pt,1); repeat for x:=0 to n-1 do begin if (a[x,y]=1) and (PInM(x,y,pt)=FALSE)then begin pt[length(pt)-1].X:=x; pt[length(pt)-1].y:=y; i:=0 repeat x1:=pt[i].X; y1:=pt[i].Y; for l=-1 to 1 for m=-1 to 1 if not(l=0 and m=0) then if (a[x1+l,y1+m]=1) and (PInM(x1+l,y1+m,pt)=FALSE)then begin setlength(pt,length(pt)+1); pt[length(pt)-1].X:=x1+l; pt[length(pt)-1].Y:=y1+m end; inc(i); until i=length(pt); {в массиве pt собраны все квадраты очередного кластера; теперь нужно переписать точки из этих квадратов в кластер с номером k. И также записать точки в memF. Тут я вряд ли помогу, потому что с трудом понимаю твои классы} ink(k) for i:=0 to length(pt)-1 do a[pt[i].X,pt[i].Y]:=2; setlength(pt,1); end; end; y:=y+1; until y>n-1;end;