因此,我正在开发一款游戏,其中有两个玩家都具有初始评分。
现在,我想根据他们的分数来计算新的评分。
例如:如果player1
得分50
(无单位)并且player2
得分30
,则player1
等级应比玩家1得分40
和player2
30
并大获全胜。
Elo评分系统仅考虑输赢,不考虑赢利幅度。
任何帮助将不胜感激。
让score1
为player1
的分数,而score2
为player2
的分数。因此,等级的更改为abs(score1 - score2) / x
,其中x是您可以更改的变量。假设您使用JavaScript,这是评分计算的完整代码。
function calcRating() {
var i = 1;
var score1 = document.getElementById('score1').value;
var score2 = document.getElementById('score2').value;
var player1 = document.getElementById('player1').value;
var player2 = document.getElementById('player2').value;
var a = player1;
var b = player2;
if (score1 > score2) {
player1 = a - (0 - (score1 - score2) / i);
player2 = b - (score1 - score2) / i;
document.getElementById('player1').value = player1;
document.getElementById('player2').value = player2;
document.getElementById('score1').value = 0;
document.getElementById('score2').value = 0;
} else if (score1 < score2) {
player1 = a - (score1 - score2) / x;
player2 = b - (0 - (score1 - score2) / x);
document.getElementById('player1').value = player1;
document.getElementById('player2').value = player2;
document.getElementById('score1').value = 0;
document.getElementById('score2').value = 0;
}
}
<button id="button" onclick='calcRating()'>Click to calculate ratings</button>
<br> Player1 score: <input type="text" id="score1" value="0"></input>
<br> Player2 score: <input type="text" id="score2" value="0"></input>
<br> Player1 rating: <input type="text" id="player1" value="0"></input>
<br> Player2 rating: <input type="text" id="player2" value="0"></input>
您可以弄乱HTML中的输入以手动更改评分和分数,以及x
,这是将评分差异附加到评分值之前将其除以分数的数字。