Я пытаюсь перебрать всех игроков иошибка переполнения стека во время цикла
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...");
}
Пожалуйста, предоставьте здесь некоторый контекст. –
refutSuggestion должен проверить, совпадает ли оружие и персонаж с карточкой игрока в руке. currenPlayerNumber является номером currentPlayer, игрок 1 будет 1. для каждого Игрока в игре, если currentPlayerNumber не равен 6 (конец игрока подсчитывает (вместо этого вместо этого вместо <= 6) проверьте, не указан ли номер игрока это currentPlayerNumber + 1 (следующий игрок), если он есть, делайте что-нибудь, иначе, recurse. Если currentPlayerNumber == 6, перезапустите с самого начала. Продолжайте проверять, пока у игроков нет карты. @MadPhysicist –
вы вызываете рекурсивно: 'refuteSuggestion (w, c, 0) ', который помещает вас в бесконечный цикл вызовов этого метода до тех пор, пока стек не переполнится – alfasin