Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ExamPreparation
- {
- public sealed class Card
- {
- public Card(string type, string power)
- {
- this.Type = type;
- this.Power = power;
- }
- public string Type { get; private set; }
- public string Power { get; private set; }
- public int Value
- {
- get
- {
- int type = CalculateType();
- int power = CalculatePower();
- return type * power;
- }
- }
- private int CalculatePower()
- {
- int power = 0;
- switch (this.Power)
- {
- case "2":
- case "3":
- case "4":
- case "5":
- case "6":
- case "7":
- case "8":
- case "9":
- case "10":
- power = int.Parse(this.Power);
- break;
- case "J":
- power = 11;
- break;
- case "Q":
- power = 12;
- break;
- case "K":
- power = 13;
- break;
- case "A":
- power = 14;
- break;
- }
- return power;
- }
- private int CalculateType()
- {
- int type = 0;
- switch (this.Type)
- {
- case "S":
- type = 4;
- break;
- case "H":
- type = 3;
- break;
- case "D":
- type = 2;
- break;
- case "C":
- type = 1;
- break;
- }
- return type;
- }
- }
- public sealed class Preparation
- {
- public static void Main()
- {
- string input = Console.ReadLine();
- Dictionary<string, List<Card>> people = new Dictionary<string, List<Card>>();
- while (input != "JOKER")
- {
- string[] tokens = input.Split(new[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
- string[] cardTokens = tokens[1].Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
- string player = tokens[0];
- if (!people.ContainsKey(player))
- {
- people.Add(player, new List<Card>());
- }
- for (int i = 0; i < cardTokens.Length; i++)
- {
- string currentCard = cardTokens[i];
- string type = currentCard[currentCard.Length - 1].ToString();
- StringBuilder power = new StringBuilder();
- power.Append(currentCard[0]);
- if (currentCard.Length > 2)
- {
- power.Append(currentCard[1]);
- }
- Card card = new Card(type, power.ToString());
- if (!people[player].Any(c => c.Power == card.Power && c.Type == card.Type))
- {
- people[player].Add(card);
- }
- }
- input = Console.ReadLine();
- }
- foreach (var player in people)
- {
- Console.WriteLine($"{player.Key}: {player.Value.Sum(c => c.Value)}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement