Om nah hoo pez nyeetz, Whouzuo!
Wieso sollte das das ganze übersichtlicher machen?
Dazu benötigt man nicht alle Einträge doppelt. Es reicht ja bei dem entsprechenden "fehlenden" Eintrag auf die Negierung des umgedrehten Eintrags zu verweisen.Das ist mir bewusst.
{Var.1}
case check[h,c] of
-1: {verloren}
0: {unentschieden}
1: {gewonnen}
end;{Var.2}
gewinn := check[min(h,c),max(h,c)] * sgn(h-c);
case gewinn of
-1: {verloren}
0: {unentschieden}
1: {gewonnen}
end;
>
> Man benötigt tatsächlich nur eine Zeile Quelltext mehr, die aber 3 Funktionsaufrufe enthält.
Ich verstehe jetzt das zweite Beispiel nicht. Wieso hier objektorientiert nicht einfach karte1.compareTo(karte2) mittels Compare Interfaces oder aber gewinner = check(karte1, karte2)
?
Der wirkliche check führt dann natürlich entsprechend die Funktion aus und negiert sie ggf. aber für den Aufrufer ist das eine blackbox, der soll davon gar nichts sehen.
Natürlich lässt sich das in PHP nicht umsetzen, weil PHP nicht nur schlecht OOP ist, sondern auch noch kein multiple dispatch kann.