我在动作侦听器中有此功能。如果我输了,它将显示1。然后重置板,而1将停留在我想要的位置。然后,如果我输了,它不会将1更改为2。同样的问题也可以解决。我希望这是足够的信息。

if (game.getGameStatus() == GameStatus.Lost) {
    displayBoard();
    JOptionPane.showMessageDialog(null, "You Lose \nThe game will     reset");
    //exposeMines = false;
    game.reset();
    displayBoard();

    int losses = 0;
    losses = losses + 1;
    String lost = Integer.toString(losses);
    jtfLosses.setText(String.format(lost));

}

最佳答案

每次输入if语句时,您都在定义“ int loss = 0”,该语句将被0覆盖,然后再次加1,每次结果为1。

如此定义

int losses = 0;


之前

if (game.getGameStatus() == GameStatus.Lost) {
...


将解决此问题,如下所示:

int losses = 0;
if (game.getGameStatus() == GameStatus.Lost) {
...


但请注意,此解决方案只是向您显示问题是什么,要使其真正正确,应使用成员变量,而不要污染全局名称空间。

关于java - 我正在做一个游戏,每当他们输掉或赢了Java家伙时,我都需要加起来,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21712998/

10-10 05:59