Программа выдает java.lang.IndexOutOfBoundsException:
каждый раз, а не java.util.NoSuchElementException
. java.lang.IndexOutOfBoundsException:
выбрасывается, потому что на
war1.add(3,userP1.pop()); //place additional card for war
вы пытаетесь добавить элемент с индексом 3, но ArrayList
имеет длину 0 (длина по умолчанию ArrayList
по состоянию на Java 8). Чтобы решить эту проблему, просто удалите аргумент index следующим образом.
war1.add(userP1.pop());
как только этот и другие случаи, когда вы делаете эту ошибку, будут устранены, программа начнет выдавать java.util.NoSuchElementException
. Это исходит от
Card p1Card = userP1.pop(); //each player place one card face up
Card p2Card = computerP2.pop();
потому что вы пытаетесь взять элемент из пустого списка. Чтобы решить эту проблему, перед проверкой убедитесь, что список не пуст, прежде чем выполнить команду pop
.
.
if (!userP1.isEmpty()) {
Card p1Card = userP1.pop(); //each player place one card face up
Card p2Card = computerP2.pop();
}