Advertisement
Guest User

HandsOfCards

a guest
May 29th, 2017
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace HandsOfCards
  8. {
  9. public class HandsOfCards
  10. {
  11. public static void Main()
  12. {
  13. string input = Console.ReadLine();
  14. Dictionary<string, List<string>> scoreDictionary = new Dictionary<string, List<string>>();
  15.  
  16. while (input != "JOKER")
  17. {
  18. string[] playerCards = input.Split(':').ToArray();
  19. string[] cards = playerCards[1]
  20. .TrimStart()
  21. .Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries)
  22. .ToArray();
  23.  
  24. if (!scoreDictionary.ContainsKey(playerCards[0]))
  25. {
  26. scoreDictionary.Add(playerCards[0], new List<string>());
  27.  
  28. }
  29.  
  30. scoreDictionary[playerCards[0]].AddRange(cards);
  31.  
  32. input = Console.ReadLine();
  33. }
  34.  
  35. foreach (var kvp in scoreDictionary)
  36. {
  37. string playerName = kvp.Key;
  38. List<string> cards = kvp.Value.Distinct().ToList();
  39.  
  40. int sum = 0;
  41. foreach (var card in cards)
  42. {
  43. string rank = card.Substring(0, card.Length - 1).Trim();
  44. string suite = card.Substring(card.Length - 1);
  45.  
  46. int rankPower = GetRank(rank);
  47. int suitePower = GetSuite(suite);
  48.  
  49. sum += rankPower * suitePower;
  50. }
  51. Console.WriteLine($"{playerName}: {sum}");
  52. }
  53. }
  54.  
  55. private static int GetRank(string powerOfCard)
  56. {
  57. switch (powerOfCard)
  58. {
  59. case "2":
  60. return 2;
  61. case "3":
  62. return 3;
  63. case "4":
  64. return 4;
  65. case "5":
  66. return 5;
  67. case "6":
  68. return 6;
  69. case "7":
  70. return 7;
  71. case "8":
  72. return 8;
  73. case "9":
  74. return 9;
  75. case "10":
  76. return 10;
  77. case "J":
  78. return 11;
  79. case "Q":
  80. return 12;
  81. case "K":
  82. return 13;
  83. case "A":
  84. return 14;
  85.  
  86. default:
  87. return 1;
  88.  
  89. }
  90. }
  91.  
  92. private static int GetSuite(string multiplier)
  93. {
  94. switch (multiplier)
  95. {
  96. case "S":
  97. return 4;
  98. case "H":
  99. return 3;
  100. case "D":
  101. return 2;
  102. case "C":
  103. return 1;
  104. default:
  105. return 1;
  106.  
  107. }
  108. }
  109. }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement