Deck exercise
unknown
java
3 years ago
2.0 kB
9
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...