Advertisement
ghostd0g

Untitled

Feb 18th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.00 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 DragonsSoftUni
  8. {
  9.  
  10.     class Dragons
  11.     {
  12.         public string DragonType { get; set; }
  13.         public string Name { get; set; }
  14.         public decimal Damage { get; set; } = 45;
  15.         public decimal Health { get; set; } = 250;
  16.         public decimal Armor { get; set; } = 10;
  17.  
  18.     }
  19.  
  20.     class Program
  21.     {
  22.         static void Main(string[] args)
  23.         {
  24.  
  25.  
  26.             int n = int.Parse(Console.ReadLine());
  27.             var dragonsList = new List<Dragons>();
  28.  
  29.  
  30.             for (int i = 0; i < n; i++)
  31.             {
  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(type, name, damage, hp, armor);
  67.  
  68.                 if (dragonsList.Any(d => d.DragonType == currentDragon.DragonType && d.Name == currentDragon.Name))
  69.                 {
  70.                     dragonsList.Remove(dragonsList.FirstOrDefault(d => d.DragonType == currentDragon.DragonType && d.Name == currentDragon.Name));
  71.                 }
  72.  
  73.                 dragonsList.Add(currentDragon);
  74.  
  75.             }
  76.  
  77.             var grouped = dragonsList.GroupBy(d => d.DragonType);
  78.  
  79.             foreach (var item in grouped)
  80.             {
  81.  
  82.                 Console.WriteLine($"{item.Key}::({item.Average(x => x.Damage):F2}/{item.Average(x => x.Health):F2}/{item.Average(x => x.Armor):F2})");
  83.                 foreach (var drake in item.OrderBy(x => x.Name))
  84.                 {
  85.                     Console.WriteLine($"-{drake.Name} -> damage: {drake.Damage}, health: {drake.Health}, armor: {drake.Armor}");
  86.                 }
  87.             }
  88.         }
  89.  
  90.         static Dragons ReadDragons(string dt, string name, decimal damage, decimal hp, decimal armor)
  91.         {
  92.  
  93.             return new Dragons
  94.             {
  95.                 DragonType = dt,
  96.                 Name = name,
  97.                 Damage = damage,
  98.                 Health = hp,
  99.                 Armor = armor
  100.             };
  101.         }
  102.  
  103.     }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement