Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _05Problem_HandsOfCards
- {
- class Program
- {
- static void Main(string[] args)
- {
- List<string> playerAndHand = Console.ReadLine().Split(':').ToList();
- var personNameAndValue = new Dictionary<string, int>();
- var personNameAndPlayedCards = new Dictionary<string, List<string>>();
- while (!playerAndHand[0].Equals("JOKER"))
- {
- int value = 0;
- List<string> currentCards = playerAndHand[1].Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries).Distinct().ToList();
- if (personNameAndPlayedCards.ContainsKey(playerAndHand[0]) == false)
- {
- personNameAndPlayedCards.Add(playerAndHand[0], currentCards);
- }
- else
- {
- List<string> repeatedCards = new List<string>();
- foreach (var cardPair in currentCards)
- {
- if (currentCards.Contains(cardPair) && personNameAndPlayedCards[playerAndHand[0]].Contains(cardPair))
- {
- repeatedCards.Add(cardPair);
- }
- }
- for (int i = 0; i < repeatedCards.Count; i++)
- {
- currentCards.Remove(repeatedCards[i]);
- }
- personNameAndPlayedCards[playerAndHand[0]] = personNameAndPlayedCards[playerAndHand[0]].Concat(currentCards).Distinct().ToList();
- }
- for (int i = 0; i < currentCards.Count; i++)
- {
- int power = 0;
- int type = 1;
- int temp = 1;
- switch (currentCards[i][0])
- {
- case 'J':
- power = 11;
- break;
- case 'Q':
- power = 12;
- break;
- case 'K':
- power = 13;
- break;
- case 'A':
- power = 14;
- break;
- case '1':
- power = 10;
- break;
- default:
- power = (int)Char.GetNumericValue(currentCards[i][0]);
- break;
- }
- if (power == 10)
- {
- temp += 1;
- }
- switch (currentCards[i][temp])
- {
- case 'S':
- type = 4;
- break;
- case 'H':
- type = 3;
- break;
- case 'D':
- type = 2;
- break;
- }
- value += power * type;
- }
- if (personNameAndValue.ContainsKey(playerAndHand[0]) == false)
- {
- personNameAndValue.Add(playerAndHand[0], value);
- }
- else
- {
- personNameAndValue[playerAndHand[0]] += value;
- }
- playerAndHand = Console.ReadLine().Split(':').ToList();
- }
- foreach (var kvp in personNameAndValue)
- {
- Console.WriteLine($"{kvp.Key}: {kvp.Value}");
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment