MilenaPetkanova

HandsOfCards

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