Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- public class Program
- {
- public struct Character
- {
- public int Health;
- public int Damage;
- public int Armor;
- public int Experience;
- public Character(int health, int damage, int armor, int experience)
- {
- this.Health = health;
- this.Damage = damage;
- this.Armor = armor;
- this.Experience = experience;
- }
- public void Attack(Monster monster)
- {
- monster.Armor -= this.Damage;
- if (monster.Armor < 0)
- {
- monster.Health += monster.Armor;
- monster.Armor = 0;
- }
- }
- }
- public class Monster
- {
- public int Health;
- public int Damage;
- public int Armor;
- public int Experience;
- public int ExperienceReward;
- public Monster()
- {
- this.Health = 10;
- this.Damage = 10;
- this.Armor = 10;
- this.Experience = 10;
- this.ExperienceReward = 10;
- }
- public Monster(int health, int damage, int armor, int experience, int experienceReward)
- {
- this.Health = health;
- this.Damage = damage;
- this.Armor = armor;
- this.Experience = experience;
- this.ExperienceReward = experienceReward;
- }
- public virtual void Attack(ref Character p)
- {
- p.Armor -= this.Damage;
- if (p.Armor < 0)
- {
- p.Health += p.Armor;
- p.Armor = 0;
- }
- }
- }
- public class Troll : Monster
- {
- public int Bonus;
- public Troll(int health, int damage, int armor, int experience, int experienceReward, int bonus) : base(health, damage, armor, experience, experienceReward)
- {
- this.Bonus = bonus;
- }
- public virtual void Defend(ref Character character)
- {
- }
- public override void Attack(ref Character character)
- {
- int doSomethingWithBonus = this.Bonus;
- }
- }
- static int GetNumberOfMonsters()
- {
- return 5;
- }
- static int RemoveDeadMonsters(Monster[] monsters)
- {
- int deadMonsters = 0;
- foreach (Monster monster in monsters)
- {
- if (monster == null || monster.Health <= 0)
- {
- deadMonsters++;
- }
- }
- int j = 0;
- Monster[] temporaryMonsters = new Monster[monsters.Length - deadMonsters];
- foreach (Monster monster in monsters)
- {
- if (monster != null && monster.Health > 0)
- {
- temporaryMonsters[j++] = monster;
- }
- }
- for (int i = 0; i < j; i++)
- monsters[i] = temporaryMonsters[i];
- for (int i = j; i < monsters.Length; i++)
- monsters[i] = null;
- return deadMonsters;
- }
- static int RemoveDeadPeople(Character[] c)
- {
- int deadPeople = 0;
- for (int i = 0; i < c.Length; i++)
- if (c[i].Health <= 0)
- deadPeople++;
- return deadPeople;
- }
- public static void Main(string[] args)
- {
- Character[] characters = new Character[3];
- characters[0] = new Character(120, 20, 20, 1);
- characters[1] = new Character(100, 20, 20, 1);
- characters[2] = new Character(100, 20, 20, 1);
- Monster[] monsters = new Monster[GetNumberOfMonsters()];
- //for(int i = 0; i< characters.Length; i++){
- // characters[i] = new Character(i+10, i+10, i +10, i+2);
- //}
- for (int i = 0; i < monsters.Length; i++)
- {
- monsters[i] = new Monster(100, 20, 0, i + 2, i + 1);
- Console.WriteLine("After Attack Monster Stats:\nHealth = " + monsters[i].Health);
- }
- int deadMonsters = 0;
- bool stuff = true;
- while (stuff)
- {
- stuff = false;
- for (int i = 0; i < characters.Length; i++)
- {
- for (int j = 0; j < monsters.Length - deadMonsters; j++)
- {
- if (characters[i].Health <= 0)
- break;
- Console.WriteLine("\nBefore Attack Monster Stats:\nHealth = " + monsters[j].Health);
- Console.WriteLine("Before Attack People Stats:\nHealth = " + characters[i].Health);
- characters[i].Attack(monsters[j]);
- monsters[j].Attack(ref characters[i]);
- Console.WriteLine("\n Omul " + i + " Ataca monstrul " + j);
- Console.WriteLine("After Attack Monster Stats:\nHealth = " + monsters[j].Health);
- Console.WriteLine("After Attack People Stats:\nHealth = " + characters[i].Health);
- }
- if (RemoveDeadMonsters(monsters) == monsters.Length)
- {
- Console.WriteLine("\nNumbers of monsters killed: " + RemoveDeadMonsters(monsters));
- stuff = false;
- break;
- }
- //Console.WriteLine("Numbers of dead: " + RemoveDeadPeople(characters) + 1);
- if (RemoveDeadPeople(characters) == characters.Length)
- {
- Console.WriteLine("Numbers of people killed: " + RemoveDeadPeople(characters));
- stuff = false;
- break;
- }
- stuff = true;
- }
- }
- Console.ReadLine();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement