Advertisement
tochka

Hands of Cards 100/100

Feb 14th, 2018
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 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 _05.Hands_of_Cards
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. string[] data = Console.ReadLine()
  14. .Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)
  15. .ToArray();
  16.  
  17. Dictionary<string, List<string>> values = new Dictionary<string, List<string>>();
  18.  
  19. while (data[0] != "JOKER")
  20. {
  21. string name = data[0];
  22. List<string> cards = data[1].Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  23.  
  24. if (!values.ContainsKey(name))
  25. {
  26. values.Add(name, cards);
  27. }
  28. else
  29. {
  30. values[name].AddRange(cards);
  31. }
  32.  
  33. data = Console.ReadLine()
  34. .Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries)
  35. .ToArray();
  36. }
  37.  
  38.  
  39.  
  40. foreach (var players in values)
  41. {
  42. List<string> uniqueCards = players.Value;
  43. uniqueCards = uniqueCards.Distinct().ToList();
  44. int result = 0;
  45.  
  46. List<int> results = new List<int>();
  47.  
  48. foreach (var item in uniqueCards)
  49. {
  50. string power = item.Substring(0, item.Length - 1).ToString();
  51. string type = item.Last().ToString();
  52.  
  53. switch (power)
  54. {
  55. case "J":
  56. power = "11";
  57. break;
  58.  
  59. case "Q":
  60. power = "12";
  61. break;
  62.  
  63. case "K":
  64. power = "13";
  65. break;
  66.  
  67. case "A":
  68. power = "14";
  69. break;
  70.  
  71. default:
  72. break;
  73. }
  74.  
  75. switch (type)
  76. {
  77. case "S":
  78. type = "4";
  79. break;
  80.  
  81. case "H":
  82. type = "3";
  83. break;
  84.  
  85. case "D":
  86. type = "2";
  87. break;
  88.  
  89. case "C":
  90. type = "1";
  91. break;
  92.  
  93. default:
  94. break;
  95. }
  96.  
  97. result += int.Parse(power) * int.Parse(type);
  98. }
  99.  
  100. results.Add(result);
  101. results = results.Distinct().ToList();
  102.  
  103. Console.WriteLine($"{players.Key}: {string.Join(" ", results)}");
  104. }
  105. }
  106. }
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement