我正在创建一个游戏,需要检查playerList中的所有玩家是否都玩过所有游戏。我通过从noOfGames变量中删除变量直到它为0来实现此目的。我现在的代码问题是,如果playerList中的最后一个玩家完成了,则游戏结束。这是我的代码:

public boolean isGameOver(){
        boolean allEqualsZero = true;

        for(Player i : playerList){
            if (i.getNoOfGames() != 0){
                allEqualsZero = false;
            }
            else{
                allEqualsZero = true;
            }
        }
        return allEqualsZero;
}

最佳答案

您的boolean变量可能会因每个玩家而异。

如果有人要玩,游戏就结束了,所以如果有人仍然要玩,请直接返回false

如果没有任何东西,请最后返回true

public boolean isGameOver() {
    for (Player i : playerList) {
        if (i.getNoOfGames != 0) return false;
    }
    return true;
}




如果您使用的是java-8,则可以使用stream

public boolean isGameOver(){
    return playerList.stream()
                     .allMatch(x -> x.getNoOfGames() == 0);
}

关于java - 我如何检查ArrayList中的每个对象的值是否等于零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36208118/

10-09 05:10