So funktioniert es (auch mit 2-2 9-6
). Wenn von Euch kein Veto mehr kommt (meine Test klappen alle) würde ich den doch glatt für die CodeLib vorschlagen (daher neuer Beitrag). Danke an Euch beide für Mühe und Zeit, ihr seid spitze
Delphi-Quellcode:
function Schritte(X1, Y1, X2, Y2:Integer): Integer;
var
X,Y: Integer;
begin
if (X1 < 0)
or (X2 < 0)
or (Y1 < 0)
or (Y2 < 0)
then
raise Exception.Create('
Die Werte müssen alle größer oder gleich Null sein.');
X:=abs(X1 - X2);
Y:=abs(Y1 - Y2);
Result:=X;
if (Y*2 > X)
then begin
inc(X,X
mod 2);
dec(Y,X
div 2);
inc(Result,Y);
end;
if (Odd(X1) <> Odd(X2))
and (Result <> 1)
then
Inc(Result,1);