Advertisement
Guest User

asd

a guest
May 27th, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.34 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.util.LinkedHashMap;
  4. import java.util.Scanner;
  5.  
  6. public class Main {
  7.  
  8. public static void main(String[] args) {
  9. Scanner sc = new Scanner(System.in);
  10. String input = sc.nextLine();
  11. LinkedHashMap<String, String> playerHands = new LinkedHashMap<>();
  12. LinkedHashMap<String, Integer> playerValues = new LinkedHashMap<>();
  13.  
  14.  
  15. while (!input.equals("JOKER")) {
  16. String[] splitedInput = input.split(": ");
  17. String cards = splitedInput[1];
  18. String name = splitedInput[0];
  19. int playerSum = 0;
  20.  
  21. checkingHands(name, cards, playerHands);
  22. calculatingCards(name, playerHands, playerValues, playerSum);
  23.  
  24. input = sc.nextLine();
  25. }
  26. printingResults(playerValues);
  27. }
  28.  
  29. private static void printingResults(LinkedHashMap<String, Integer> playerValues) {
  30. for (String s : playerValues.keySet()) {
  31. System.out.printf("%s: %d\n", s, playerValues.get(s));
  32. }
  33. }
  34.  
  35. private static void checkingHands(String name, String cards, LinkedHashMap<String, String> playerHands) {
  36. String[] splittedCards = cards.split(", ");
  37. for (int i = 0; i < splittedCards.length; i++) {
  38. if (playerHands.containsKey(name)) {
  39. String temp = playerHands.get(name);
  40. if (playerHands.get(name).contains(splittedCards[i])) {
  41. continue;
  42. } else {
  43. playerHands.put(name, temp + ", " + splittedCards[i]);
  44. }
  45.  
  46. } else {
  47. playerHands.put(name, splittedCards[i]);
  48. }
  49. }
  50. }
  51.  
  52. private static void calculatingCards(String name, LinkedHashMap<String, String> playerHands, LinkedHashMap<String, Integer> playerValues, int playerSum) {
  53. String[] splittedCards = playerHands.get(name).split(", ");
  54. int cardValue = 0;
  55. for (int i = 0; i < splittedCards.length; i++) {
  56. for (int j = 0; j < splittedCards[i].length(); j++) {
  57. if (splittedCards[i].charAt(0) == '1') {
  58. cardValue = 10;
  59. switch (splittedCards[i].charAt(2)) {
  60. case 'S':
  61. cardValue *= 4;
  62. break;
  63. case 'H':
  64. cardValue *= 3;
  65. break;
  66. case 'D':
  67. cardValue *= 2;
  68. break;
  69. }
  70. break;
  71. } else {
  72. if (j % 2 == 0) {
  73. switch (splittedCards[i].charAt(j)) {
  74. case 'J':
  75. cardValue = 11;
  76. break;
  77. case 'Q':
  78. cardValue = 12;
  79. break;
  80. case 'K':
  81. cardValue = 13;
  82. break;
  83. case 'A':
  84. cardValue = 14;
  85. break;
  86. default:
  87. cardValue = Integer.parseInt(String.valueOf(splittedCards[i].charAt(j)));
  88. break;
  89. }
  90. } else {
  91. switch (splittedCards[i].charAt(j)) {
  92. case 'S':
  93. cardValue *= 4;
  94. break;
  95. case 'H':
  96. cardValue *= 3;
  97. break;
  98. case 'D':
  99. cardValue *= 2;
  100. break;
  101. }
  102. }
  103. }
  104.  
  105. }
  106. playerSum += cardValue;
  107. if (playerValues.containsKey(name)) {
  108. if (cardValue == playerSum) {
  109. cardValue = 0;
  110. }
  111. playerValues.put(name, playerSum);
  112. } else {
  113. playerValues.put(name, playerSum);
  114. }
  115. }
  116.  
  117. }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement