1

我正在尝试制作一个计算体育预测游戏分数的程序。与游戏相关的处罚之一是,您每错过正确的分数,就会从您的分数中减去一分。

例如,您预测 A 队将以 17-0 的比分击败 B 队,但最终比分是 10-14。这意味着您损失了 21 分,因为您预测 B 队的胜利优势是 17 分,而实际上真实的优势是 A 队落后 4 分。

另一个例子,您预测 B 队将以 35-3 的比分击败 A 队。在这种情况下,同样使用上面的最终分数,您只会损失 28 分。

当我测试该程序时,我发现它通常在玩家预测正确的球队获胜时起作用。我知道代码中的问题涉及这种胜利边际惩罚,但我不明白为什么它有时会给我正确的分数,而其他时候却没有。

// Calculate actual margin of victory 
margin1 = team1score - team2score;
            if (margin1 < 0) {
                margin1 = margin1 * -1;
            }
// Calculate predicted margin of victory
margin2 = prediction2 - prediction1;
            if (margin2 < 0) {
                margin2 = margin2 * -1;
            }

// Calculate difference
if (margin1 == margin2) {
      totalMargin = 0;
} else {
      totalMargin = margin1 - margin2;
      if (totalMargin < 0) {
           totalMargin = totalMargin * -1;
   }
}

谢谢。

4

1 回答 1

1

你的代码太复杂了。

总失分总是:

Math.abs(  (prediction2 - prediction1) - (score2 - score1))

abs 是绝对值。

于 2013-01-01T22:18:59.880 回答