Advertisement
Guest User

08. Hands of Cards

a guest
May 28th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.InteropServices;
  5. using System.Text;
  6. using System.Text.RegularExpressions;
  7. using System.Threading.Tasks;
  8.  
  9. namespace _08.Hands_of_Cards
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. var input = Console.ReadLine();
  16. var dict = new Dictionary<string,int>();
  17. var cardPower = new Dictionary<string,int>(GetCardPowers());
  18. var cardType = new Dictionary<string, int>(GetCardType());
  19.  
  20. while (input != "JOKER")
  21. {
  22. var round = Regex.Split(input, ": ");
  23. var name = round[0];
  24. var cards = new HashSet<string>(Regex.Split(round[1], ", "));
  25. var power = 0;
  26. foreach (var card in cards)
  27. {
  28. power += cardPower[card[0].ToString()] * cardType[card[1].ToString()];
  29. }
  30.  
  31. if (!dict.ContainsKey(name))
  32. {
  33. dict.Add(name,power);
  34. }
  35. else
  36. {
  37. dict[name]+= power;
  38. }
  39. input = Console.ReadLine();
  40. }
  41.  
  42. foreach (var player in dict)
  43. {
  44. Console.WriteLine($"{player.Key}: {player.Value}");
  45. }
  46.  
  47. }
  48.  
  49. static Dictionary<string, int> GetCardType()
  50. {
  51. Dictionary<string,int> cardType = new Dictionary<string, int>();
  52.  
  53. cardType.Add("S", 4);
  54. cardType.Add("H", 3);
  55. cardType.Add("D", 2);
  56. cardType.Add("C", 1);
  57.  
  58. return cardType;
  59. }
  60.  
  61. static Dictionary<string, int> GetCardPowers()
  62. {
  63. Dictionary<string, int> cardPower = new Dictionary<string, int>();
  64.  
  65. for (int i = 2; i <= 10; i++)
  66. {
  67. cardPower.Add(i.ToString(),i);
  68. }
  69. cardPower["J"] = 11;
  70. cardPower["Q"] = 12;
  71. cardPower["K"] = 13;
  72. cardPower["A"] = 14;
  73.  
  74. return cardPower;
  75. }
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement