hallo =)
kann mir jemand helfen folgende funktion zu realisieren?:
Zitat:
NP = AP + K * (WL - (1 / (10 ^ (DR / 400) + 1))
NP: sind die neuen Punkte.
AP: sind die alten punkte.
K: ist eine konstante, die die maximal zu gewinnende/verlierende punktzahl enthält basiert auf den Gegnerrank gegen den man gespielt hat. 1minimum-64maximum
WL: ob man gewonnen oder verloren hat (1/0)
DR: ist die differenz de rpunkte beider spieler.
ein spieler kann nie mehr als 10% seiner punkte verlieren.
Delphi-Quellcode:
function GetPoints(Player1, Player2: integer): integer;
var NP, AP, WL, DR, winnerPoints, loserPoints: integer;
const K: integer = 64;
begin
DR := loserpoints - winnerpoints;
result := AP + K * (WL - (1 / (10 ^ (DR / 400) + 1)));
end;
das geht soweit ganz gut da wenn ich der funktion "0, 0" übergebe ich "32" bekomme.... falsch wird es nur wenn ich z.b "120,120" übergebe...da kriege ich immer noch "32" das dürfte aber eigentlich nicht sein....und der Fehler muss an K liegen.... weiss jemand wie ich für die K Konstante den richtigen wert bekomme? 64 kann es ja nicht immer sein...
viewlleicht hilft das ja weiter:
http://www.montanachess.com/members/uscfrate.htm
aber ich kriege das nich raus...