Курсовая работа: Вычисление "рыбы"
count:=1;
repeat
st:=false;
if Getnext(curent)=true then
begin
st:=true;
id:=rand(r);
next:=sp2[id];
//****************
for I := 2 to 28 do
if (domino[i].SideA=next.SideA)and(domino[i].SideB=next.SideB) then
domino[i].State:=true;
//******************
prev:=curent;
if prev.SideB<>next.SideA then
if prev.SideB=next.SideB then
begin
next.SideB:=next.SideA;
next.SideA:=prev.SideB;
end;
curent:=next;
sp1[count]:=next;
inc(count);
Form1.Label1.caption:=Form1.Label1.Caption+'->';
Form1.Label1.caption:=Form1.Label1.Caption+inttostr(curent.SideA)+inttostr(curent.SideB);
end;
until (st=false);
end;
И, наконец, функция GetNext ( cur : TDomino ): boolean , ищущая подходящие свободные костяшки.