desislava_topuzakova

06. Cards Game

Oct 16th, 2021
614
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package Lists_Exercise;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Scanner;
  6. import java.util.stream.Collectors;
  7.  
  8. public class CardsGame_06 {
  9.     public static void main(String[] args) {
  10.         Scanner scanner = new Scanner(System.in);
  11.         List<Integer> firstPlayerCards = Arrays.stream(scanner.nextLine().split(" "))
  12.                 .map(Integer::parseInt).collect(Collectors.toList());
  13.         //{20 30 40 50}
  14.         List<Integer> secondPlayerCards = Arrays.stream(scanner.nextLine().split(" "))
  15.                 .map(Integer::parseInt).collect(Collectors.toList());
  16.         //{10 20 30 40}
  17.  
  18.         //1. взимам първата карта от ръката
  19.         //2. премахвам картата от ръката
  20.         //3. проверка кой печели:
  21.         // карта 1 > карта 2 -> слагам накрая на ръката на първия -> карта 1 -> карта 2
  22.         //карта 2 > карта 1 -> слагам накрая на ръката на втория -> карта 2 -> карта 1
  23.         //карта 1 == карта 2 -> не ги добавяме никъде
  24.  
  25.         //играта продължава когато и двамата имат карти
  26.         //играта спира, когато някой остане без карти
  27.  
  28.         while (firstPlayerCards.size() != 0 && secondPlayerCards.size() != 0) {
  29.             int firstPlayerCard = firstPlayerCards.get(0);
  30.             int secondPlayerCard = secondPlayerCards.get(0);
  31.             firstPlayerCards.remove(0);
  32.             secondPlayerCards.remove(0);
  33.  
  34.             if (firstPlayerCard > secondPlayerCard) {
  35.                 firstPlayerCards.add(firstPlayerCard);
  36.                 firstPlayerCards.add(secondPlayerCard);
  37.             } else if (secondPlayerCard > firstPlayerCard) {
  38.                 secondPlayerCards.add(secondPlayerCard);
  39.                 secondPlayerCards.add(firstPlayerCard);
  40.             }
  41.         }
  42.  
  43.         //1. ако на първия му свършат картите
  44.         if (firstPlayerCards.size() == 0) {
  45.             //втория печели -> сума от картите на втория
  46.             System.out.printf("Second player wins! Sum: %d", getCardsSum(secondPlayerCards));
  47.         }
  48.         //2. ако на втория му свършат картите
  49.         else if (secondPlayerCards.size() == 0) {
  50.             //първия печели
  51.             System.out.printf("First player wins! Sum: %d", getCardsSum(firstPlayerCards));
  52.         }
  53.     }
  54.  
  55.     private static int getCardsSum(List<Integer> listCards) {
  56.         int sum = 0;
  57.         for (int card : listCards) {
  58.             sum += card;
  59.         }
  60.  
  61.         return sum;
  62.     }
  63. }
RAW Paste Data