我将其改写为措辞更好
我正在为我和我的好友构建一个不和谐的机器人,以与(私人5v5)一起在室内玩游戏。它可以起草球队,记录得分,并保持带有糟糕的评分系统的排行榜
获胜团队中的每个人都获得与败者团队中的每个人相同的评分。对于弱者胜利,您最多可以获得/减少75 elo,对于明确的喜欢的胜利,您可以获得/减少至少25 elo。
基本上,如果您赢了一场比赛,那么您将赢得25-49 elo,这取决于elo的差异。
如果您赢了一场比赛,那么您将获得51-75的赔率。
我们只有30至40个人,因此实际的ELO系统将无法正常工作,而只是为了娱乐。
我对编码还是很陌生,因此无论出于什么原因,我似乎都无法将头放在如何计算它上。
这是我到目前为止完全错误的方程式
var loserELO = process.argv[2];
var winnerELO = process.argv[3];
var eloUpdate
//if loser has more elo than winner
if (winnerELO != loserELO) {
if (winnerELO > loserELO) {
var diff = winnerELO - loserELO;
var percent = diff / 750
eloUpdate = diff * 75
}
if (loserELO > winnerELO) {
var diff = winnerELO / loserELO;
eloUpdate = diff * 75;
}
if (eloUpdate > 75) {
eloUpdate = 75;
}
if (eloUpdate < 25) {
eloUpdate = 25;
}
}
else {
eloUpdate = 50
}
console.log(eloUpdate);
答案 0 :(得分:0)
你好,我弄清楚了,并使其变得比我需要的更加复杂。
var winnerELO = process.argv[2];
var loserELO = process.argv[3];
var eloDiff = loserELO - winnerELO;
var eloUpdate;
var xMax = 75;
var xMin = 25;
var yMax = 1500;
var yMin = -1500;
var percent = (eloDiff - yMin) / (yMax - yMin);
eloUpdate = percent * (xMax - xMin) + xMin;
if (eloUpdate > 75) {
eloUpdate = 75;
}
if (eloUpdate < 25) {
eloUpdate = 25;
}
console.log(eloUpdate);