borovaneca

HandsOfCards

May 18th, 2023
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1. package Advance.SetsAndMaps.Exercise;
  2.  
  3. import java.lang.reflect.InaccessibleObjectException;
  4. import java.util.LinkedHashMap;
  5. import java.util.LinkedHashSet;
  6. import java.util.Map;
  7. import java.util.Scanner;
  8.  
  9. public class HandsOfCards {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.  
  13.  
  14.         LinkedHashMap<String, LinkedHashSet<String>> userMap = new LinkedHashMap<>();
  15.  
  16.         String command = scanner.nextLine();
  17.  
  18.         while (!command.equals("JOKER")) {
  19.             String[] nameAndNumbersArr = command.split(": ");
  20.             String name = nameAndNumbersArr[0];
  21.             String[] cardsArr = nameAndNumbersArr[1].split(",\\s+");
  22.  
  23.             if (!userMap.containsKey(name)) {
  24.                 userMap.put(name, new LinkedHashSet<>());
  25.             }
  26.             for (int i = 0; i < cardsArr.length; i++) {
  27.                 userMap.get(name).add(cardsArr[i]);
  28.             }
  29.  
  30.  
  31.             command = scanner.nextLine();
  32.         }
  33.  
  34.         for (Map.Entry<String, LinkedHashSet<String>> entry : userMap.entrySet()) {
  35.             int sum = getSum(entry.getValue());
  36.             System.out.printf("%s: %d%n", entry.getKey(), sum);
  37.         }
  38.  
  39.     }
  40.  
  41.     private static int getSum(LinkedHashSet<String> userHand) {
  42.         int sum = 0;
  43.         while (!userHand.isEmpty()) {
  44.             String currentCard = userHand.iterator().next();
  45.             userHand.remove(currentCard);
  46.             char firstSymbol = currentCard.charAt(0);
  47.             char secondSymbol = currentCard.charAt(1);
  48.             int firstValue = 0;
  49.             int secondValue = 0;
  50.             if (currentCard.length() > 2) {
  51.                 String number = String.valueOf(Integer.parseInt(String.valueOf(currentCard.charAt(0)) + String.valueOf(currentCard.charAt(1))));
  52.                 firstValue = Integer.parseInt(number);
  53.                 secondSymbol = currentCard.charAt(2);
  54.             } else {
  55.                 if (Character.isDigit(firstSymbol)) {
  56.                     firstValue = Integer.parseInt(String.valueOf(firstSymbol));
  57.                 } else if (firstSymbol == 'A') {
  58.                     firstValue = 14;
  59.                 } else if (firstSymbol == 'K') {
  60.                     firstValue = 13;
  61.                 } else if (firstSymbol == 'Q') {
  62.                     firstValue = 12;
  63.                 } else if (firstSymbol == 'J') {
  64.                     firstValue = 11;
  65.                 } else if (firstSymbol == 'S') {
  66.                     firstValue = 4;
  67.                 } else if (firstSymbol == 'H') {
  68.                     firstValue = 3;
  69.                 } else if (firstSymbol == 'D') {
  70.                     firstValue = 2;
  71.                 } else if (firstSymbol == 'C') {
  72.                     firstValue = 1;
  73.                 }
  74.             }
  75.  
  76.             if (Character.isDigit(secondSymbol)) {
  77.                 secondValue = Integer.parseInt(String.valueOf(secondSymbol));
  78.             } else if (secondSymbol == 'A') {
  79.                 secondValue = 14;
  80.             } else if (secondSymbol == 'K') {
  81.                 secondValue = 13;
  82.             } else if (secondSymbol == 'Q') {
  83.                 secondValue = 12;
  84.             } else if (secondSymbol == 'J') {
  85.                 secondValue = 11;
  86.             } else if (secondSymbol == 'S') {
  87.                 secondValue = 4;
  88.             } else if (secondSymbol == 'H') {
  89.                 secondValue = 3;
  90.             } else if (secondSymbol == 'D') {
  91.                 secondValue = 2;
  92.             } else if (secondSymbol == 'C') {
  93.                 secondValue = 1;
  94.             }
  95.  
  96.             sum += firstValue * secondValue;
  97.  
  98.         }
  99.         return sum;
  100.     }
  101. }
  102.  
Advertisement
Add Comment
Please, Sign In to add comment