Advertisement
valkata

handsOfCards

Oct 7th, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.05 KB | None | 0 0
  1. import sun.awt.image.ImageWatched;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.util.LinkedHashMap;
  7. import java.util.LinkedHashSet;
  8. import java.util.Map;
  9.  
  10. public class handsOfCards {
  11.     public static LinkedHashMap<String, LinkedHashSet<String>> players;
  12.     public static void main(String[] args) throws IOException {
  13.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
  14.         String currentPlayer = reader.readLine();
  15.         int sum = 0;
  16.         players = new LinkedHashMap<>();
  17.         while (!currentPlayer.equals("JOKER")) {
  18.             String[] inputTokkens = currentPlayer.split(":");
  19.             String name = inputTokkens[0];
  20.             if (!players.containsKey(name)) {
  21.                 players.put(name, new LinkedHashSet<>());
  22.             }
  23.             fillSet(inputTokkens[1],name);
  24.             currentPlayer = reader.readLine();
  25.         }
  26.  
  27.         for (Map.Entry<String, LinkedHashSet<String>> player : players.entrySet()) {
  28.             sum = calculateHand(player.getValue());
  29.             System.out.printf("%s: %d%n", player.getKey(), sum);
  30.         }
  31.     }
  32.  
  33.     private static int calculateHand(LinkedHashSet<String> cards) {
  34.         int sum = 0;
  35.         int power = 0;
  36.         int type = 0;
  37.         char currentType = '\0';
  38.         for (String card : cards) {
  39.             if (card.length() == 3) {
  40.                 power = 10;
  41.                 currentType = card.charAt(2);
  42.             } else {
  43.                 currentType = card.charAt(1);
  44.                 if (Character.isDigit(card.charAt(0))) {
  45.                     power = Integer.parseInt(card.charAt(0) + "");
  46.                 } else {
  47.                     switch (card.charAt(0)) {
  48.                         case 'A':
  49.                             power = 14;
  50.                             break;
  51.                         case 'J':
  52.                             power = 11;
  53.                             break;
  54.                         case 'Q':
  55.                             power = 12;
  56.                             break;
  57.                         case 'K':
  58.                             power = 13;
  59.                             break;
  60.                         default:
  61.                             break;
  62.                     }
  63.                 }
  64.             }
  65.             switch (currentType) {
  66.                 case 'C':
  67.                     type = 1;
  68.                     break;
  69.                 case 'D':
  70.                     type = 2;
  71.                     break;
  72.                 case 'H':
  73.                     type = 3;
  74.                     break;
  75.                 case 'S':
  76.                     type = 4;
  77.                     break;
  78.                 default:
  79.                     break;
  80.             }
  81.             sum += (power * type);
  82.         }
  83.         return sum;
  84.     }
  85.  
  86.     private static void fillSet(String inputTokken, String player) {
  87.         String[] cards = inputTokken.split(", ");
  88.         for (String card : cards) {
  89.             players.get(player).add(card.trim());
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement