Advertisement
nikeza

8.Hands Of Cards

Sep 30th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.57 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collectors;
  3.  
  4. public class map1_Exercises_8Hands_Of_Cards {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.  
  8.         String input = scanner.nextLine();
  9.  
  10.         Map<String, Set<String>> cards = new LinkedHashMap<>();
  11.         while (!input.equals("JOKER")) {
  12.             String[] tokens = input.split(": ");
  13.             String names = tokens[0];
  14.             Set<String> listOfCards = Arrays.stream(tokens[1].split(", "))
  15.                     .collect(Collectors.toSet());
  16.  
  17.             cards.putIfAbsent(names, new LinkedHashSet<>());
  18.             cards.get(names).addAll(listOfCards);
  19.  
  20.             input = scanner.nextLine();
  21.         }
  22.  
  23.         for (Map.Entry<String, Set<String>> entry : cards.entrySet()) {
  24.  
  25.             int powerCard = powerCard(entry.getValue());
  26.             System.out.printf("%s: %d%n", entry.getKey(), powerCard);
  27.         }
  28.  
  29.     }
  30.  
  31.     private static int powerCard(Set<String> value) {
  32.         int sum = 0;
  33.         String power = "";
  34.         String type = "";
  35.         for (String s : value) {
  36.  
  37.             String[] line = s.split("");
  38.             if (line.length <= 2) {
  39.                 power = line[0];
  40.                 type = line[1];
  41.             } else {
  42.                 power = "10";
  43.                 type = line[2];
  44.             }
  45.             sum += makeResult(power, type);
  46.         }
  47.  
  48.  
  49.         return sum;
  50.     }
  51.  
  52.     private static int makeResult(String power, String type) {
  53.  
  54.         int sum = 0;
  55.         int num = 0;
  56.         int typeNum = 0;
  57.         char symbolFirst = power.charAt(0);
  58.         int symbolNum = power.charAt(0) - '0';
  59.         if (Character.isDigit(symbolFirst)) {
  60.             if (symbolNum > 1) {
  61.                 num = symbolFirst - '0';
  62.             } else {
  63.                 num = 10;
  64.             }
  65.         } else {
  66.             switch (symbolFirst + "") {
  67.                 case "J":
  68.                     num = 11;
  69.                     break;
  70.                 case "Q":
  71.                     num = 12;
  72.                     break;
  73.                 case "K":
  74.                     num = 13;
  75.                     break;
  76.                 case "A":
  77.                     num = 14;
  78.                     break;
  79.             }
  80.         }
  81.         switch (type) {
  82.             case "S":
  83.                 typeNum = 4;
  84.                 break;
  85.             case "H":
  86.                 typeNum = 3;
  87.                 break;
  88.             case "D":
  89.                 typeNum = 2;
  90.                 break;
  91.             case "C":
  92.                 typeNum = 1;
  93.                 break;
  94.         }
  95.  
  96.         sum = num * typeNum;
  97.         return sum;
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement