Procedure Find_Ant, Control, Monitor
procedure TMravenec.Find_Wood; // najde uhel k vetvicce
var px, py,x,y,i : integer;
best_distance : integer; // zatim nejlepsi vzdalenost od vetvicky
best_dis_index : integer; // indexs nejlepsi vetvicky
vzdalenost : integer; // prave pocitana vzdalenost
begin
if (live<=90) then
begin
with Ant_Hill do begin
x:=round(xx);
y:=round(yy);
best_distance:=800;
for i:=0 to curr_num_woods-1 do
if Data_Wood[i].where=2 then
begin
vzdalenost:=round(sqrt((x-Data_Wood[i].x)*(x-Data_Wood[i].x)+(y-Data_Wood[i].y)*(y-Data_Wood[i].y)));
if (vzdalenost<=best_distance) and (vzdalenost<(inteligence*20)) then // rovnost v dokumentaci
begin
best_distance:=vzdalenost;
best_dis_index:=i;
end;
end;
if best_distance<=800 then // rovnost v dokumentaci
begin
px:=x-Data_Wood[best_dis_index].x;
py:=y-Data_Wood[best_dis_index].y;
if px>0 then smer:=arctan(py/px)+Pi
else smer:=arctan(py/px);
delka:=best_distance div 32;
end;
end;
end;
end;
|