Advertisement
Ligh7_of_H3av3n

07. Hands Of Cards

May 21st, 2024
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1. package Uprajnenie;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.HashSet;
  5. import java.util.Map;
  6. import java.util.Scanner;
  7. import java.util.Set;
  8.  
  9. public class HandsOfCards {
  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.  
  13.  
  14.         Map<String, Set<String>> playerCards = new LinkedHashMap<>();
  15.  
  16.         while (true) {
  17.             String input = scanner.nextLine();
  18.             if (input.equals("JOKER")) {
  19.                 break;
  20.             }
  21.  
  22.             String[] parts = input.split(": ");
  23.             String name = parts[0];
  24.             String[] cards = parts[1].split(", ");
  25.  
  26.             playerCards.putIfAbsent(name, new HashSet<>());
  27.  
  28.             for (String card : cards) {
  29.                 playerCards.get(name).add(card);
  30.             }
  31.         }
  32.  
  33.         for (Map.Entry<String, Set<String>> entry : playerCards.entrySet()) {
  34.             String name = entry.getKey();
  35.             Set<String> cards = entry.getValue();
  36.             int totalValue = calculateTotalValue(cards);
  37.             System.out.println(name + ": " + totalValue);
  38.         }
  39.     }
  40.  
  41.     private static int calculateTotalValue(Set<String> cards) {
  42.         Map<Character, Integer> powerMap = new LinkedHashMap<>();
  43.         for (int i = 2; i <= 10; i++) {
  44.             powerMap.put((char) (i + '0'), i);
  45.         }
  46.         powerMap.put('J', 11);
  47.         powerMap.put('Q', 12);
  48.         powerMap.put('K', 13);
  49.         powerMap.put('A', 14);
  50.  
  51.         Map<Character, Integer> typeMap = new LinkedHashMap<>();
  52.         typeMap.put('S', 4);
  53.         typeMap.put('H', 3);
  54.         typeMap.put('D', 2);
  55.         typeMap.put('C', 1);
  56.  
  57.         int totalValue = 0;
  58.  
  59.         for (String card : cards) {
  60.             char powerChar = card.charAt(0);
  61.             char typeChar = card.charAt(card.length() - 1);
  62.             int power, type;
  63.  
  64.             if (Character.isDigit(powerChar) && card.length() == 3) {
  65.                 power = 10;
  66.             } else {
  67.                 power = powerMap.get(powerChar);
  68.             }
  69.  
  70.             type = typeMap.get(typeChar);
  71.  
  72.             totalValue += power * type;
  73.         }
  74.  
  75.         return totalValue;
  76.     }
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement