Advertisement
Guest User

Untitled

a guest
Dec 10th, 2020
1,135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.00 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4. using System.Text.RegularExpressions;
  5. using System.Text;
  6.  
  7.  
  8. class Program
  9. {
  10.  
  11. static void Main()
  12. {
  13. int n = int.Parse(Console.ReadLine());
  14.  
  15. Dictionary<string, Dictionary<string, int>> heroes = new Dictionary<string, Dictionary<string, int>>();
  16.  
  17. for (int i = 0; i < n; i++)
  18. {
  19.  
  20. string[] line = Console.ReadLine().Split();
  21. string heroName = line[0];
  22. int hp = int.Parse(line[1]);
  23. int mp = int.Parse(line[2]);
  24.  
  25. if (!heroes.ContainsKey(heroName))
  26. {
  27. heroes.Add(heroName, new Dictionary<string, int>()
  28. {
  29. {"hp", hp },
  30. {"mp", mp }
  31. });
  32. }
  33. else
  34. {
  35. heroes[heroName]["hp"] = hp;// тук няма нужда от +
  36. heroes[heroName]["mp"] = mp;
  37. // въведени по този начин данните са доста объркващи по- надолу и предполагам от тук идват грешките
  38. }
  39. }
  40.  
  41. string command = Console.ReadLine();
  42.  
  43. while (command != "End")
  44. {
  45. string[] line = command.Split(" - ");
  46. string cmd = line[0];
  47.  
  48. if (cmd == "CastSpell")
  49. {
  50. string heroName = line[1];
  51. int mpNeeded = int.Parse(line[2]);
  52. string spellName = line[3];
  53.  
  54. if (heroes[heroName]["mp"] >= mpNeeded) // добавено =
  55. {
  56. heroes[heroName]["mp"] -= mpNeeded;
  57. Console.WriteLine($"{heroName} has successfully cast {spellName} and now has {heroes[heroName]["mp"]} MP!");
  58. }
  59. else
  60. {
  61. Console.WriteLine($"{heroName} does not have enough MP to cast {spellName}!");
  62. }
  63. }
  64.  
  65. else if (cmd == "TakeDamage")
  66. {
  67. string heroName = line[1];
  68. int damage = int.Parse(line[2]);
  69. string spellName = line[3];
  70.  
  71. if (heroes[heroName]["hp"] - damage > 0) // промяна
  72. {
  73. heroes[heroName]["hp"] -= damage;
  74. Console.WriteLine($"{heroName} was hit for {damage} HP by {spellName} and now has {heroes[heroName]["hp"]} HP left!");
  75. }
  76. else
  77. {
  78. Console.WriteLine($"{heroName} has been killed by {spellName}!");
  79. heroes.Remove(heroName);
  80. }
  81. }
  82.  
  83. else if (cmd == "Recharge")
  84. {
  85. string heroName = line[1];
  86. int rechargeHp = int.Parse(line[2]);
  87. int totalMp = heroes[heroName]["mp"] + rechargeHp;
  88.  
  89. if (totalMp > 200)
  90. {
  91.  
  92. Console.WriteLine($"{heroName} recharged for {200 - heroes[heroName]["mp"]} MP!");
  93. heroes[heroName]["mp"] = 200;// добавено
  94. }
  95. else
  96. {
  97. //int diff = 200 - heroes[heroName]["mp"];
  98. heroes[heroName]["mp"] = totalMp;
  99.  
  100. Console.WriteLine($"{heroName} recharged for {rechargeHp} MP!");
  101.  
  102. }
  103. }
  104.  
  105. else if (cmd == "Heal")
  106. {
  107. string heroName = line[1];
  108. int neededHp = int.Parse(line[2]);
  109.  
  110. int totalHp = heroes[heroName]["hp"] + neededHp;
  111.  
  112. if (totalHp > 100)//heroes[heroName]["hp"] > heroes[heroName]["hp"] + neededHp
  113. {// поне за мен е по изчистино и лесно за разбиране, когато си създам totalHp и става по- лесно когато се дебъгва за да се открият грешките
  114.  
  115. Console.WriteLine($"{heroName} healed for {100 - heroes[heroName]["hp"]} HP!");
  116. heroes[heroName]["hp"] = 100;
  117. }
  118. else
  119. {
  120. //int diff = 100 - heroes[heroName]["hp"];
  121.  
  122.  
  123. heroes[heroName]["hp"] = totalHp;
  124.  
  125. Console.WriteLine($"{heroName} healed for {neededHp} HP!");
  126. }
  127.  
  128. }
  129.  
  130. command = Console.ReadLine();
  131.  
  132. }
  133.  
  134. foreach (var item in heroes.OrderByDescending(s => s.Value["hp"]).ThenBy(y => y.Key))// добавено
  135. {
  136. Console.WriteLine($"{item.Key}");
  137.  
  138. Console.WriteLine($" HP: {heroes[item.Key]["hp"]}");
  139. Console.WriteLine($" MP: {heroes[item.Key]["mp"]}");
  140. } // добавено празно пространство x2 м/у $" MP/HP
  141.  
  142. }
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement