Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import java.util.LinkedHashMap;
- import java.util.Scanner;
- public class Main {
- public static void main(String[] args) {
- Scanner sc = new Scanner(System.in);
- String input = sc.nextLine();
- LinkedHashMap<String, String> playerHands = new LinkedHashMap<>();
- LinkedHashMap<String, Integer> playerValues = new LinkedHashMap<>();
- while (!input.equals("JOKER")) {
- String[] splitedInput = input.split(": ");
- String cards = splitedInput[1];
- String name = splitedInput[0];
- int playerSum = 0;
- checkingHands(name, cards, playerHands);
- calculatingCards(name, playerHands, playerValues, playerSum);
- input = sc.nextLine();
- }
- printingResults(playerValues);
- }
- private static void printingResults(LinkedHashMap<String, Integer> playerValues) {
- for (String s : playerValues.keySet()) {
- System.out.printf("%s: %d\n", s, playerValues.get(s));
- }
- }
- private static void checkingHands(String name, String cards, LinkedHashMap<String, String> playerHands) {
- String[] splittedCards = cards.split(", ");
- for (int i = 0; i < splittedCards.length; i++) {
- if (playerHands.containsKey(name)) {
- String temp = playerHands.get(name);
- if (playerHands.get(name).contains(splittedCards[i])) {
- continue;
- } else {
- playerHands.put(name, temp + ", " + splittedCards[i]);
- }
- } else {
- playerHands.put(name, splittedCards[i]);
- }
- }
- }
- private static void calculatingCards(String name, LinkedHashMap<String, String> playerHands, LinkedHashMap<String, Integer> playerValues, int playerSum) {
- String[] splittedCards = playerHands.get(name).split(", ");
- int cardValue = 0;
- for (int i = 0; i < splittedCards.length; i++) {
- for (int j = 0; j < splittedCards[i].length(); j++) {
- if (splittedCards[i].charAt(0) == '1') {
- cardValue = 10;
- switch (splittedCards[i].charAt(2)) {
- case 'S':
- cardValue *= 4;
- break;
- case 'H':
- cardValue *= 3;
- break;
- case 'D':
- cardValue *= 2;
- break;
- }
- break;
- } else {
- if (j % 2 == 0) {
- switch (splittedCards[i].charAt(j)) {
- case 'J':
- cardValue = 11;
- break;
- case 'Q':
- cardValue = 12;
- break;
- case 'K':
- cardValue = 13;
- break;
- case 'A':
- cardValue = 14;
- break;
- default:
- cardValue = Integer.parseInt(String.valueOf(splittedCards[i].charAt(j)));
- break;
- }
- } else {
- switch (splittedCards[i].charAt(j)) {
- case 'S':
- cardValue *= 4;
- break;
- case 'H':
- cardValue *= 3;
- break;
- case 'D':
- cardValue *= 2;
- break;
- }
- }
- }
- }
- playerSum += cardValue;
- if (playerValues.containsKey(name)) {
- if (cardValue == playerSum) {
- cardValue = 0;
- }
- playerValues.put(name, playerSum);
- } else {
- playerValues.put(name, playerSum);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement