我正在尝试制作一个计算体育预测游戏得分的程序。与游戏相关的处罚之一是,您每错过正确的分数,就会从您的分数中减去一分。
例如,您预测 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;
}
}
谢谢。
你的代码太复杂了。
总失分始终为:
Math.abs( (prediction2 - prediction1) - (score2 - score1))
abs 是绝对值。
我是一名优秀的程序员,十分优秀!