- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
function Dist(dx, dy: integer): integer;
begin
//result := trunc(sqrt(sqr(dx)+sqr(dy)));
dx := abs(dx);
dy := abs(dy);
if dx>dy then begin
dy := dy shr 1 - dx shr 3;
if dy >= 0 then result := dx+dy else result := dx;
end else begin
dx := dx shr 1 - dy shr 3;
if dx >= 0 then result := dx+dy else result := dy;
end;
end;