游戏平均分.要么我除以零,要么计算一个太多



嘿,我需要一些快速的建议。 我想计算游戏的平均分数,并每轮更新一次,但我无法正确执行此操作。

    private void updateAverage(GLabel average) {
    average.setLabel(String.valueOf("Avg: " 
         + String.valueOf((int)((AI_SCORE + PLAYER_SCORE) / TOTAL_GAMES))));
    average.setLocation(getWidth() / 2 - average.getWidth() / 2,
         getHeight() - PADDING);
    TOTAL_GAMES++;
}

这是我使用的代码。我也在第一轮之前调用此方法,将计数器放在屏幕上。如果我在定义时设置TOTAL_GAMES = 0;,我会得到/ by 0错误。但是如果我把它设置为 1 ,平均而言是有缺陷的。我找不到适合 TOTAL_GAMES++; m 的位置,我尝试将其放入检测游戏损失的方法中,在更新平均值后,如上面的代码和其他一些代码,但每次平均值计算错误。

完整代码在这里

只需检查TOTAL_GAMES是否==为0。

private void updateAverage(GLabel average) {
 if(TOTAL_GAMES == 0){
    average.setLabel("0");
    return;
  }
average.setLabel(String.valueOf("Avg: " 
     + String.valueOf((int)((AI_SCORE + PLAYER_SCORE) / TOTAL_GAMES))));
average.setLocation(getWidth() / 2 - average.getWidth() / 2,
     getHeight() - PADDING);
TOTAL_GAMES++;
}

if语句将从上面的用户开始工作。

看起来您正在将 (AI_SCORE + PLAYER_SCORE)/(TOTAL_GAMES) 转换为 int,这将改变答案。

如果total_games是全局的,那应该可以正常工作。不知道为什么它是一个浮动。

最新更新