Advertisement
Ivelin_1936

Hands of Cards

May 23rd, 2018
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.90 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.HashMap;
  5. import java.util.LinkedHashMap;
  6.  
  7. public class HandOfCards {
  8.     public static void main(String[] args) throws IOException {
  9.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  10.  
  11.         LinkedHashMap<String, HashMap<String, Integer>> people = new LinkedHashMap<>();
  12.  
  13.         String input = reader.readLine();
  14.         while (!input.equals("JOKER"))
  15.         {
  16.             String[]commandArr = input.split(":\\s");
  17.             String name = commandArr[0];
  18.             String[] cardsArr = commandArr[1].trim().split(",\\s");
  19.  
  20.             if (!people.containsKey(name))
  21.             {
  22.                 people.put(name, new HashMap<>());
  23.                 addCardsToPersone(people.get(name), cardsArr);
  24.             } else {
  25.                 addCardsToPersone(people.get(name), cardsArr);
  26.             }
  27.  
  28.             input = reader.readLine();
  29.         }
  30.  
  31.         for (String person : people.keySet()) {
  32.             System.out.println(String.format("%s: %d", person, sumIntegersValue(people.get(person))));
  33.         }
  34.  
  35.     }
  36.  
  37.     private static int sumIntegersValue(HashMap<String, Integer> stringIntegerHashMap)
  38.     {
  39.         int sum = 0;
  40.         for (Integer value : stringIntegerHashMap.values())
  41.         {
  42.             sum += value;
  43.         }
  44.         return sum;
  45.     }
  46.  
  47.     private static void addCardsToPersone(HashMap<String, Integer> person, String[] cardsArr)
  48.     {
  49.         for (String card : cardsArr) {
  50.             if (!person.containsKey(card))
  51.             {
  52.                 person.put(card, getCardValue(card));
  53.             }
  54.         }
  55.     }
  56.  
  57.     private static Integer getCardValue(String card)
  58.     {
  59.  
  60.         int power = 0;
  61.         char check = card.charAt(0);
  62.         switch (check)
  63.         {
  64.             case '2':
  65.             case '3':
  66.             case '4':
  67.             case '5':
  68.             case '6':
  69.             case '7':
  70.             case '8':
  71.             case '9':
  72.                 power += (int)card.charAt(0) - 48;
  73.                 break;
  74.             case '1':
  75.                 power += 10;
  76.                 break;
  77.             case 'J':
  78.                 power += 11;
  79.                 break;
  80.             case 'Q':
  81.                 power += 12;
  82.                 break;
  83.             case 'K':
  84.                 power += 13;
  85.                 break;
  86.             case 'A':
  87.                 power += 14;
  88.                 break;
  89.         }
  90.  
  91.         switch (card.charAt(card.length() - 1))
  92.         {
  93.             case 'S':
  94.                 power *= 4;
  95.                 break;
  96.             case 'H':
  97.                 power *= 3;
  98.                 break;
  99.             case 'D':
  100.                 power *= 2;
  101.                 break;
  102.             case 'C':
  103.                 power *= 1;
  104.                 break;
  105.         }
  106.         return power;
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement