Advertisement
WindFell

HandsOfCards

Apr 16th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.74 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(string[] args)
  8.     {
  9.         string input = Console.ReadLine();
  10.  
  11.         var playersPowers = new Dictionary<string, int>();
  12.         var playersCards = new Dictionary<string, List<string>>();
  13.  
  14.         while (input != "JOKER")
  15.         {
  16.             string name = input
  17.                 .Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
  18.                 .Take(1)
  19.                 .ToArray()[0]
  20.                 .ToString();
  21.  
  22.             string CardsStr = input
  23.                 .Split(":".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
  24.                 .Skip(1)
  25.                 .ToArray()[0]
  26.                 .ToString();
  27.  
  28.             List<string> cards = CardsStr
  29.                 .Split(", ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
  30.                 .ToList();
  31.  
  32.             if (playersCards.ContainsKey(name) == false)
  33.             {
  34.                 playersCards.Add(name, new List<string>());
  35.             }
  36.  
  37.             playersCards[name].AddRange(cards);
  38.  
  39.             input = Console.ReadLine();
  40.         }
  41.  
  42.         foreach (var player in playersCards)
  43.         {
  44.             int totalPower = 0;
  45.             foreach (string cardSet in player.Value.Distinct())
  46.             {
  47.                 char[] cards = cardSet.ToCharArray();
  48.                 int power = 0;
  49.  
  50.                 switch (cards.First())
  51.                 {
  52.                     case '1':
  53.                         power += 10;
  54.                         break;
  55.                     case 'J':
  56.                         power += 11;
  57.                         break;
  58.                     case 'Q':
  59.                         power += 12;
  60.                         break;
  61.                     case 'K':
  62.                         power += 13;
  63.                         break;
  64.                     case 'A':
  65.                         power += 14;
  66.                         break;
  67.                     default:
  68.                         power += int.Parse(cards.First().ToString());
  69.                         break;
  70.                 }
  71.  
  72.                 switch (cards.Last())
  73.                 {
  74.                     case 'D':
  75.                         power *= 2;
  76.                         break;
  77.                     case 'H':
  78.                         power *= 3;
  79.                         break;
  80.                     case 'S':
  81.                         power *= 4;
  82.                         break;
  83.                 }
  84.  
  85.                 totalPower += power;
  86.             }
  87.             playersPowers.Add(player.Key, totalPower);
  88.         }
  89.  
  90.         foreach (var player in playersPowers)
  91.         {
  92.             Console.WriteLine($"{player.Key}: {player.Value}");
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement