0
我通過所有的球員試圖環和而循環
1>輸出線
2>創建基於特定條件的對象
堆棧溢出錯誤。但我得到一個Stackoverflow錯誤。
public void refuteSuggestion(Weapon w, Character c, int currentPlayerNumber) {
for (Player p : game.getPlayers()) {
if(currentPlayerNumber != 6) {
if (p.getNum() == currentPlayerNumber + 1) {
Set<Card> cardSet = new HashSet<>();
cardSet.addAll(p.getPlayerCards());
Card card = (Card) getRandomObject(cardSet);
System.out.println(card.getName(0));
} else {
refuteSuggestion(w, c, currentPlayerNumber + 1);
}
}
else{
refuteSuggestion(w, c, 0);
}
}
System.out.println("No one refuted...");
}
請在此處提供一些背景信息。 –
反駁建議應該檢查武器和角色是否與他們手中的牌手相匹配。 currenPlayerNumber是當前播放器的編號,播放器1將是1.對於遊戲中的每個播放器,如果當前播放器編號不是6(播放器的末尾計數(改爲<= 6),則檢查播放器的編號是當前播放器號碼+ 1(下一個播放器),如果是,做東西,否則,遞歸。如果當前播放器數字== 6,從一開始遞歸。繼續檢查,直到沒有玩家擁有該卡。@MadPhysicist –
您遞歸調用:'refuteSuggestion (w,c,0)'這會讓你陷入無休止的調用這個方法的循環,直到堆棧溢出 – alfasin