计算游戏的胜利率

时间:2013-01-01 22:12:00

标签: java math

我正在尝试制作一个计算运动预测游戏分数的程序。与游戏相关的一个惩罚是,对于每个点你错过正确的边距,从你的分数中减去一个点。

例如,您预测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;
   }
}

感谢。

1 个答案:

答案 0 :(得分:1)

您的代码太复杂了。

总丢失点总是:

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

绝对是绝对值。