Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 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 Nether_Realms
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. string[] input = Console.ReadLine().Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
  14. var demons = new SortedDictionary<string, Dictionary<string, double>>();
  15. var symbols = new char[] { '+', '-', '*', '/', '.' };
  16.  
  17. foreach (var demon in input)
  18. {
  19. double health = 0;
  20. double damage = 0;
  21. var num = new StringBuilder();
  22. for (int i = 0; i < demon.Length; i++)
  23. {
  24. if (!char.IsDigit(demon[i]) && !symbols.Contains(demon[i]))
  25. {
  26. health += demon[i];
  27. }
  28. if (char.IsDigit(demon[i]) || (demon[i] == '.' && i != 0 && char.IsDigit(demon[i - 1]) && char.IsDigit(demon[i + 1])))
  29. {
  30. num.Append(demon[i]);
  31. }
  32. else
  33. {
  34. if (num.Length != 0)
  35. {
  36. if (i - num.Length - 1 >= 0 && demon[i - num.Length - 1] == '-')
  37. {
  38. damage -= double.Parse(num.ToString());
  39. }
  40. else
  41. {
  42. damage += double.Parse(num.ToString());
  43. }
  44. num = new StringBuilder();
  45. }
  46. }
  47. if (i == demon.Length - 1 && num.Length != 0)
  48. {
  49. if (demon[i - num.Length] == '-')
  50. {
  51. damage -= double.Parse(num.ToString());
  52. }
  53. else
  54. {
  55. damage += double.Parse(num.ToString());
  56. }
  57. }
  58. }
  59. for (int i = 0; i < demon.Length; i++)
  60. {
  61. if (demon[i] == '*')
  62. {
  63. damage *= 2;
  64. }
  65. else if (demon[i] == '/')
  66. {
  67. damage /= 2;
  68. }
  69. }
  70. demons.Add(demon, new Dictionary<string, double>());
  71. demons[demon].Add("damage", damage);
  72. demons[demon].Add("health", health);
  73. }
  74. foreach (var demon in demons)
  75. {
  76. Console.WriteLine("{0} - {1} health, {2:f2} damage", demon.Key, demon.Value["health"], demon.Value["damage"]);
  77. }
  78. }
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement