Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Joker {
- public static void main(String[] args) {
- Scanner scan = new Scanner (System.in);
- String input = scan.nextLine();
- Map<String, Set<String>> players = new LinkedHashMap<>();
- while (!input.equals("JOKER")){
- String name = input.split(":\\s+")[0];
- String card = input.split(":\\s+")[1];
- String[] typeOfCards = card.split(", ");
- Set<String> setOfCards = new LinkedHashSet<>(Arrays.asList(typeOfCards));
- if (!players.containsKey(name)) {
- players.put(name, setOfCards);
- }else {
- Set<String> currentCards = players.get(name);
- currentCards.addAll(setOfCards);
- players.put(name, currentCards);
- }
- input=scan.nextLine();
- }
- players.forEach((name, cards) -> {
- int points = getCardsPoints(cards);
- System.out.printf("%s: %d%n", name, points);
- });
- }
- private static int getCardsPoints(Set<String> cards) {
- int allPoints = 0;
- Map<Character, Integer> symbolsValue = getSymbolsValue();
- for (String card : cards) {
- int points;
- if (card.startsWith("10")){
- char type = card.charAt(2);
- points = 10 * symbolsValue.get(type);
- } else {
- char type = card.charAt(1);
- char power = card.charAt(0);
- points = symbolsValue.get(power) * symbolsValue.get(type);
- }
- allPoints += points;
- }
- return allPoints;
- }
- private static Map<Character, Integer> getSymbolsValue() {
- Map<Character, Integer> characterValues = new HashMap<>();
- characterValues.put('2', 2);
- characterValues.put('3', 3);
- characterValues.put('4', 4);
- characterValues.put('5', 5);
- characterValues.put('6', 6);
- characterValues.put('7', 7);
- characterValues.put('8', 8);
- characterValues.put('9', 9);
- characterValues.put('J', 11);
- characterValues.put('Q', 12);
- characterValues.put('K', 13);
- characterValues.put('A', 14);
- characterValues.put('S', 4);
- characterValues.put('H', 3);
- characterValues.put('D', 2);
- characterValues.put('C', 1);
- return characterValues;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement