2012-05-03 23 views

回答

0

我會寫我自己的它很簡單。

//first i calculate the win probability. 
$a_win_prob = 1/(1+pow(10,($b_elo - $a_elo)/400)); 
$b_win_prob = 1/(1+pow(10,($a_elo - $b_elo)/400)); 

//than i make a K value for a and b 
if($a_elo < 2100){ 
    $a_k = 20; 
}elseif($a_elo > 2300){ 
    $a_k = 10; 
}else{ 
    $a_k = 15; 
} 

if($b_elo < 2100){ 
    $b_k = 20; 
}elseif($b_elo > 2300){ 
    $b_k = 10; 
}else{ 
    $b_k = 15; 
} 

//than i calculate both elo values. 
if($win_side === "a"){ 
    $a_elo_new = $a_elo + $a_k*(2*$a_win_prob); 
    $b_elo_new = $b_elo - $b_k*(2*$b_win_prob); 
}else{ 
    $a_elo_new = $a_elo - $a_k*(2*$a_win_prob); 
    $b_elo_new = $b_elo + $b_k*(2*$b_win_prob); 
} 
//than i can put them in a database 

這個我基本建立了一個ELO等級systum 它要比類簡單。 你甚至可以將其重寫爲一個函數。我希望這會有幫助