嘿,我需要一些快速的建议。 我想计算游戏的平均分数,并每轮更新一次,但我无法正确执行此操作。
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是全局的,那应该可以正常工作。不知道为什么它是一个浮动。