Advertisement
ghostd0g

Untitled

Feb 18th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.26 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 Exercise11
  8. {
  9.  
  10.     class Dragons
  11.     {
  12.         public string Name { get; set; }
  13.         public decimal Damage { get; set; } = 45;
  14.         public decimal Health { get; set; } = 250;
  15.         public decimal Armor { get; set; } = 10;
  16.  
  17.     }
  18.  
  19.     class Program
  20.     {
  21.         static void Main(string[] args)
  22.         {
  23.            
  24.  
  25.             int n = int.Parse(Console.ReadLine());
  26.             var dragons = new Dictionary<string, List<Dragons>>();
  27.            
  28.  
  29.             for (int i = 0; i < n; i++)
  30.             {
  31.                 var dragonsList = new List<Dragons>();
  32.  
  33.                 var dragonAttr = Console.ReadLine().Split(' ');
  34.                 var type = dragonAttr[0];
  35.                 var drag = new Dragons();
  36.                 string name = dragonAttr[1];
  37.                 decimal damage = 0;
  38.                 decimal hp = 0;
  39.                 decimal armor = 0;
  40.                 if (dragonAttr[2] == "null")
  41.                 {
  42.                     damage = drag.Damage;
  43.                 }
  44.                 else
  45.                 {
  46.                     damage = decimal.Parse(dragonAttr[2]);
  47.                 }
  48.                 if (dragonAttr[3] == "null")
  49.                 {
  50.                     hp = drag.Health;
  51.                 }
  52.                 else
  53.                 {
  54.                     hp = decimal.Parse(dragonAttr[3]);
  55.                 }
  56.                 if (dragonAttr[4] == "null")
  57.                 {
  58.                     armor = drag.Armor;
  59.                 }
  60.                 else
  61.                 {
  62.                     armor = decimal.Parse(dragonAttr[4]);
  63.                 }
  64.  
  65.                
  66.                 var currentDragon = ReadDragons(name, damage, hp, armor);
  67.                 dragonsList.Add(currentDragon);
  68.  
  69.                 if (!dragons.ContainsKey(type))
  70.                 {
  71.                    
  72.                     dragons.Add(type, dragonsList);
  73.                 }
  74.                 else
  75.                 {
  76.                     if (!dragons[type].Contains(dragonsList.Contains(name)))
  77.                     {
  78.                         dragons[type].Add(currentDragon);
  79.                     }
  80.                     else
  81.                     {
  82.                         dragonsList.Add(currentDragon);
  83.                         dragons[type] = dragonsList;
  84.                     }
  85.                 }
  86.                
  87.             }
  88.             foreach (var item in dragons)
  89.             {
  90.  
  91.                 Console.WriteLine($"{item.Key}::({item.Value.Average(x => x.Damage):F2}/{item.Value.Average(x => x.Health):F2}/{item.Value.Average(x => x.Armor):F2})");
  92.                 foreach (var drake in item.Value.OrderBy(x => x.Name))
  93.                 {
  94.                     Console.WriteLine($"-{drake.Name} -> damage: {drake.Damage}, health: {drake.Health}, armor: {drake.Armor}");
  95.                 }
  96.             }
  97.         }
  98.  
  99.         static Dragons ReadDragons(string name, decimal damage, decimal hp, decimal armor)
  100.         {
  101.  
  102.             return new Dragons
  103.             {
  104.                 Name = name,
  105.                 Damage = damage,
  106.                 Health = hp,
  107.                 Armor = armor
  108.             };
  109.         }
  110.  
  111.     }
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement