Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. namespace _03.NetherRealms
  2. {
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text.RegularExpressions;
  7.  
  8. public class Daemons
  9. {
  10. public string Name { get; set; }
  11.  
  12. public int Health { get; set; }
  13.  
  14. public double Damage { get; set; }
  15. }
  16.  
  17. public class NetherRealms
  18. {
  19. public static void Main()
  20. {
  21. var daemons = Console.ReadLine()
  22. .Split(new[] { ','}, StringSplitOptions.RemoveEmptyEntries)
  23. .Select(d => d.Trim())
  24. .ToList();
  25.  
  26. var daemonsData = new List<Daemons>();
  27.  
  28. foreach (var daemon in daemons)
  29. {
  30. if (daemon.Contains(' '))
  31. {
  32. continue;
  33. }
  34. var currDaemon = new Daemons();
  35. currDaemon.Name = daemon;
  36. foreach (var ch in daemon)
  37. {
  38. if (char.IsLetter(ch))
  39. {
  40. currDaemon.Health += (int)ch;
  41. }
  42. }
  43.  
  44. var reg = new Regex(@"[-|+]*[0.0-9]+");
  45.  
  46. var matches = reg.Matches(daemon);
  47.  
  48. foreach (var match in matches)
  49. {
  50. currDaemon.Damage += double.Parse(match.ToString());
  51. }
  52.  
  53. foreach (var item in daemon)
  54. {
  55. if (item.Equals('/'))
  56. {
  57. currDaemon.Damage /= 2;
  58. }
  59.  
  60. if (item.Equals('*'))
  61. {
  62. currDaemon.Damage *= 2;
  63. }
  64. }
  65.  
  66. daemonsData.Add(currDaemon);
  67. }
  68.  
  69. foreach (var daemon in daemonsData.OrderBy(d => d.Name))
  70. {
  71. Console.WriteLine($"{daemon.Name} - {daemon.Health} health, {daemon.Damage:F2} damage");
  72. }
  73. }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement