我正在做一个计算体育预测游戏分数的程序。与这场比赛相关的处罚之一是,对于每一分你错过了正确的边缘,一分被从你的分数中减去。
例如,你预测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;
}
}谢谢。
发布于 2013-01-01 22:18:59
你的代码太复杂了。
总损失分数总是:
Math.abs( (prediction2 - prediction1) - (score2 - score1))abs是绝对值。
https://stackoverflow.com/questions/14114716
复制相似问题