firstPlayer и SecondPlayer поочередно получают очки из первого индекса списка.
firstPlayer получает индекс 0, а затем удаляет это значение. если значение является четным числом, оставшийся список становится обратным.
Затем SecondPlayer делает то же самое. Но почему-то в этой части возникает ошибка.
Каждый раз, когда каждый игрок получает значение, оно объединяется.
В конце подсчитывается разница первого и второго игрока.
Вот что я получаю:

import java.util.*; public static void main(String[] args) { List list = new ArrayList(); список.добавить(4); список.добавить(2); список.добавить(1); список.добавить(4); список.добавить(3); интервал firstScore = 0; ИНТ SecondScore = 0; интервал я = 0; ИНТ FirstPlayer = 0; ИНТ SecondPlayer = 0; в то время как (!list.isEmpty()) { System.out.println(список); firstScore = list.get(i); список.удалить (я); System.out.println(firstScore); если (firstScore % 2 == 0) { Коллекции.обратный(список); } FirstPlayer = FirstScore + FirstPlayer; System.out.println(список); SecondScore = list.get(i); //в этой строке возникает ошибка, но если нет цикла while, все работает нормально список.удалить (я); System.out.println(второй балл); если (секундный балл % 2 == 0) { Коллекции.обратный(список); } SecondPlayer = SecondScore + SecondPlayer; } System.out.println(firstPlayer - SecondPlayer); } }