Deck exercise
unknown
java
2 years ago
2.0 kB
5
Indexable
import java.util.Arrays; import java.util.List; import java.util.Scanner; import java.util.stream.Collectors; public class dec { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); List<Integer> firstPlayerCards = Arrays .stream(scanner.nextLine().split(" ")) .map(Integer::parseInt) .collect(Collectors.toList()); List<Integer> secondPlayerCards = Arrays .stream(scanner.nextLine().split(" ")) .map(Integer::parseInt) .collect(Collectors.toList()); while (!firstPlayerCards.isEmpty() && !secondPlayerCards.isEmpty()) { int firstCardPower = firstPlayerCards.get(0); int secondCardPower = secondPlayerCards.get(0); removeCard(firstPlayerCards); removeCard(secondPlayerCards); if (firstCardPower > secondCardPower) { addCards(firstCardPower, secondCardPower, firstPlayerCards); } else if (secondCardPower > firstCardPower) { addCards(secondCardPower, firstCardPower, secondPlayerCards); } } List<Integer> winner = findWinner(firstPlayerCards, secondPlayerCards); System.out.printf("%s player wins! Sum: %d", firstPlayerCards.size() > secondPlayerCards.size() ? "First" : "Second", winner.stream().mapToInt(Integer::intValue).sum() ); } private static List<Integer> findWinner(List<Integer> firstPlayerCards, List<Integer> secondPlayerCards) { return firstPlayerCards.size() > secondPlayerCards.size() ? firstPlayerCards : secondPlayerCards; } private static void addCards(int cardA, int cardB, List<Integer> cardDeck) { cardDeck.add(cardA); cardDeck.add(cardB); } private static void removeCard(List<Integer> cardDeck) { cardDeck.remove(0); } }
Editor is loading...