Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.67 KB | None | 0 0
  1. using System;
  2.  
  3. public class Program
  4. {
  5. public struct Character
  6. {
  7. public int Health;
  8. public int Damage;
  9. public int Armor;
  10. public int Experience;
  11.  
  12. public Character(int health, int damage, int armor, int experience)
  13. {
  14. this.Health = health;
  15. this.Damage = damage;
  16. this.Armor = armor;
  17. this.Experience = experience;
  18. }
  19. public void Attack(Monster monster)
  20. {
  21. monster.Armor -= this.Damage;
  22. if (monster.Armor < 0)
  23. {
  24. monster.Health += monster.Armor;
  25. monster.Armor = 0;
  26. }
  27. }
  28. }
  29.  
  30. public class Monster
  31. {
  32. public int Health;
  33. public int Damage;
  34. public int Armor;
  35. public int Experience;
  36. public int ExperienceReward;
  37.  
  38. public Monster()
  39. {
  40. this.Health = 10;
  41. this.Damage = 10;
  42. this.Armor = 10;
  43. this.Experience = 10;
  44. this.ExperienceReward = 10;
  45. }
  46.  
  47. public Monster(int health, int damage, int armor, int experience, int experienceReward)
  48. {
  49. this.Health = health;
  50. this.Damage = damage;
  51. this.Armor = armor;
  52. this.Experience = experience;
  53. this.ExperienceReward = experienceReward;
  54. }
  55. public virtual void Attack(ref Character p)
  56. {
  57. p.Armor -= this.Damage;
  58. if (p.Armor < 0)
  59. {
  60. p.Health += p.Armor;
  61. p.Armor = 0;
  62. }
  63. }
  64. }
  65.  
  66. public class Troll : Monster
  67. {
  68.  
  69. public int Bonus;
  70.  
  71. public Troll(int health, int damage, int armor, int experience, int experienceReward, int bonus) : base(health, damage, armor, experience, experienceReward)
  72. {
  73. this.Bonus = bonus;
  74. }
  75. public virtual void Defend(ref Character character)
  76. {
  77.  
  78. }
  79. public override void Attack(ref Character character)
  80. {
  81. int doSomethingWithBonus = this.Bonus;
  82. }
  83. }
  84.  
  85. static int GetNumberOfMonsters()
  86. {
  87. return 5;
  88. }
  89.  
  90. static int RemoveDeadMonsters(Monster[] monsters)
  91. {
  92. int deadMonsters = 0;
  93. foreach (Monster monster in monsters)
  94. {
  95. if (monster == null || monster.Health <= 0)
  96. {
  97. deadMonsters++;
  98. }
  99. }
  100. int j = 0;
  101. Monster[] temporaryMonsters = new Monster[monsters.Length - deadMonsters];
  102.  
  103. foreach (Monster monster in monsters)
  104. {
  105. if (monster != null && monster.Health > 0)
  106. {
  107. temporaryMonsters[j++] = monster;
  108. }
  109. }
  110.  
  111. for (int i = 0; i < j; i++)
  112. monsters[i] = temporaryMonsters[i];
  113.  
  114. for (int i = j; i < monsters.Length; i++)
  115. monsters[i] = null;
  116. return deadMonsters;
  117. }
  118.  
  119. static int RemoveDeadPeople(Character[] c)
  120. {
  121. int deadPeople = 0;
  122. for (int i = 0; i < c.Length; i++)
  123. if (c[i].Health <= 0)
  124. deadPeople++;
  125. return deadPeople;
  126. }
  127.  
  128.  
  129. public static void Main(string[] args)
  130. {
  131. Character[] characters = new Character[3];
  132. characters[0] = new Character(120, 20, 20, 1);
  133. characters[1] = new Character(100, 20, 20, 1);
  134. characters[2] = new Character(100, 20, 20, 1);
  135. Monster[] monsters = new Monster[GetNumberOfMonsters()];
  136.  
  137. //for(int i = 0; i< characters.Length; i++){
  138. // characters[i] = new Character(i+10, i+10, i +10, i+2);
  139. //}
  140.  
  141.  
  142. for (int i = 0; i < monsters.Length; i++)
  143. {
  144. monsters[i] = new Monster(100, 20, 0, i + 2, i + 1);
  145. Console.WriteLine("After Attack Monster Stats:\nHealth = " + monsters[i].Health);
  146. }
  147.  
  148. int deadMonsters = 0;
  149. bool stuff = true;
  150. while (stuff)
  151. {
  152. stuff = false;
  153. for (int i = 0; i < characters.Length; i++)
  154. {
  155.  
  156. for (int j = 0; j < monsters.Length - deadMonsters; j++)
  157. {
  158. if (characters[i].Health <= 0)
  159. break;
  160. Console.WriteLine("\nBefore Attack Monster Stats:\nHealth = " + monsters[j].Health);
  161. Console.WriteLine("Before Attack People Stats:\nHealth = " + characters[i].Health);
  162.  
  163. characters[i].Attack(monsters[j]);
  164. monsters[j].Attack(ref characters[i]);
  165.  
  166. Console.WriteLine("\n Omul " + i + " Ataca monstrul " + j);
  167. Console.WriteLine("After Attack Monster Stats:\nHealth = " + monsters[j].Health);
  168. Console.WriteLine("After Attack People Stats:\nHealth = " + characters[i].Health);
  169.  
  170. }
  171.  
  172. if (RemoveDeadMonsters(monsters) == monsters.Length)
  173. {
  174. Console.WriteLine("\nNumbers of monsters killed: " + RemoveDeadMonsters(monsters));
  175. stuff = false;
  176. break;
  177. }
  178.  
  179. //Console.WriteLine("Numbers of dead: " + RemoveDeadPeople(characters) + 1);
  180. if (RemoveDeadPeople(characters) == characters.Length)
  181. {
  182. Console.WriteLine("Numbers of people killed: " + RemoveDeadPeople(characters));
  183. stuff = false;
  184. break;
  185. }
  186.  
  187. stuff = true;
  188. }
  189.  
  190. }
  191.  
  192. Console.ReadLine();
  193.  
  194.  
  195. }
  196.  
  197.  
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement