Advertisement
Viksy

Joker

Feb 1st, 2023
1,277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.45 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. public class Joker {
  4.     public static void main(String[] args) {
  5.         Scanner scan = new Scanner (System.in);
  6.  
  7.         String input = scan.nextLine();
  8.         Map<String, Set<String>> players = new LinkedHashMap<>();
  9.         while (!input.equals("JOKER")){
  10.             String name = input.split(":\\s+")[0];
  11.             String card = input.split(":\\s+")[1];
  12.  
  13.             String[] typeOfCards = card.split(", ");
  14.  
  15.             Set<String> setOfCards = new LinkedHashSet<>(Arrays.asList(typeOfCards));
  16.             if (!players.containsKey(name)) {
  17.                 players.put(name, setOfCards);
  18.             }else {
  19.                 Set<String> currentCards = players.get(name);
  20.                 currentCards.addAll(setOfCards);
  21.                 players.put(name, currentCards);
  22.             }
  23.  
  24.             input=scan.nextLine();
  25.         }
  26.         players.forEach((name, cards) -> {
  27.             int points = getCardsPoints(cards);
  28.             System.out.printf("%s: %d%n", name, points);
  29.         });
  30.     }
  31.  
  32.     private static int getCardsPoints(Set<String> cards) {
  33.         int allPoints = 0;
  34.  
  35.         Map<Character, Integer> symbolsValue = getSymbolsValue();
  36.  
  37.         for (String card : cards) {
  38.             int points;
  39.  
  40.             if (card.startsWith("10")){
  41.                 char type = card.charAt(2);
  42.                 points = 10 * symbolsValue.get(type);
  43.             } else {
  44.                 char type = card.charAt(1);
  45.                 char power = card.charAt(0);
  46.  
  47.                 points = symbolsValue.get(power) * symbolsValue.get(type);
  48.             }
  49.  
  50.             allPoints += points;
  51.         }
  52.  
  53.         return allPoints;
  54.     }
  55.  
  56.     private static Map<Character, Integer> getSymbolsValue() {
  57.         Map<Character, Integer> characterValues = new HashMap<>();
  58.  
  59.         characterValues.put('2', 2);
  60.         characterValues.put('3', 3);
  61.         characterValues.put('4', 4);
  62.         characterValues.put('5', 5);
  63.         characterValues.put('6', 6);
  64.         characterValues.put('7', 7);
  65.         characterValues.put('8', 8);
  66.         characterValues.put('9', 9);
  67.         characterValues.put('J', 11);
  68.         characterValues.put('Q', 12);
  69.         characterValues.put('K', 13);
  70.         characterValues.put('A', 14);
  71.         characterValues.put('S', 4);
  72.         characterValues.put('H', 3);
  73.         characterValues.put('D', 2);
  74.         characterValues.put('C', 1);
  75.  
  76.         return characterValues;
  77.     }
  78. }
  79.  
  80.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement