Advertisement
ghostd0g

Untitled

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