我正在创建一个游戏,需要检查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/