javascript中的缩放比例和逆缩放比例?

时间:2020-07-17 07:47:58

标签: javascript discord.js equation

我将其改写为措辞更好

我正在为我和我的好友构建一个不和谐的机器人,以与(私人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);

1 个答案:

答案 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);