Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace ConsoleApp1
- //Задание 7
- //1.Создать виртуальную армию согласно условию.Каждый боец армии должен уметь рассказать о себе.
- //Армия должна уметь выводить статистику о себе: Общий урон, Общая защита, Общие здоровье, Общая численность армии.
- //Параметры армии:
- //Мех: ballista Здор = 478 боеп= Bolt(Energetic Power Wall, урон = 17)
- //Сол: Bard Здор = 104 урон= 5 броня= Glass Armor (доп.защита= 30)
- //Сол: Barbarian Здор = 234 урон=15 броня=Hide Armor(доп.защита= 10)
- //Сол: Wizard Здор = 51 урон=7 броня=Glass Armor(доп.защита= 30)
- //Жив: Camel Здор = 11 урон=0 скор=26
- //Жив: Horse Здор = 15 урон=0 скор=26
- //Жив: Tiger Здор = 35 урон=20 скор=40
- //Вса: 1. Наез=Barbarian Жив = Camel
- //2.Реализовать метод нанесения армии урона, по следующим правилам:
- //1)Урон наноситься поочередно каждому юниту.
- //2)Из урона атаки вычитается общая защита защищающийся армии, остаток урона вычитается из здоровья защищающийся армии
- // по следующему принципу: из остатка урона вычитается здоровье каждого юнита,
- // по очереди, до тех пор пока остаток не будет равен 0, при этом юнит погибает если его здоровье меньше остатка урона, то есть удаляется из армии.
- //3)После каждой атаки пересчитываться характеристики армии.
- //4)Бой заканчивается, когда погибнут все юниты в армии.
- {
- class Program
- {
- static int arm = 0;
- static int dam = 0;
- static int hepe = 0;
- static List<Unit> Army = new List<Unit>();
- static void Main(string[] args)
- {
- Console.WriteLine("Нажмите любую клавишу , чтобы сгенерировать армию");
- Console.ReadKey();
- Console.Clear();
- AddUnit();
- Menu();
- int cmd = Convert.ToInt32(Console.ReadLine());
- while (cmd != 0)
- {
- Console.Clear();
- switch (cmd)
- {
- case 1:
- ArmyInfo();
- break;
- case 2:
- InfoUnit();
- break;
- case 3:
- GoDamage();
- break;
- }
- Menu();
- cmd = Convert.ToInt32(Console.ReadLine());
- }
- }
- public static void InfoUnit()
- {
- foreach (Unit X in Army)
- {
- X.Display();
- }
- }
- public static void AddUnit()
- {
- Random rnd = new Random();
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Bard(5, 104, "Bard", 30)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Barbarian(15, 234, "Barbarian", 10)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Wizard(7, 51, "Wizard", 30)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Camel(0, 11, "Camel", 26)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Horse(0, 15, "Horse", 26)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Tiger(20, 35, "Tiger", 40)); }
- for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Balista(17, 478, "Balista", rnd.Next(0, 4))); }
- foreach (Unit X in Army)
- {
- if (X.Name == "Balista" && ((Balista)X).Ammo == 0) { X.ChangeDmg(0); }
- }
- foreach (Unit X in Army)
- {
- dam += X.Damage;
- try
- {
- arm += ((Bard)X).Armor;
- }
- catch (Exception)
- {
- try
- {
- arm += ((Wizard)X).Armor;
- }
- catch (Exception)
- {
- try
- {
- arm += ((Barbarian)X).Armor;
- }
- catch (Exception) { }
- }
- }
- hepe += X.Hp;
- }
- }
- static void Menu()
- {
- Console.WriteLine("Меню");
- Console.WriteLine("1- Узнать общие характеристики армии");
- Console.WriteLine("2- Узнать характериситики каждого юнита");
- Console.WriteLine("3- Нанести армии урон");
- }
- static void ArmyInfo()
- {
- Console.WriteLine("Общий урон армии: " + dam);
- Console.WriteLine("Общая защита армии: " + arm);
- Console.WriteLine("Общее количество Hp армии: " + hepe);
- }
- static void GoDamage()
- {
- Console.WriteLine("Введите урон , который хотите нанести армии");
- int damag = Convert.ToInt32(Console.ReadLine());
- while (damag <= 0)
- {
- Console.WriteLine("Введите положительное значение");
- damag = Convert.ToInt32(Console.ReadLine());
- }
- int realdamag = damag - arm;
- List<Unit> listremoved = new List<Unit> { };
- foreach (Unit X in Army)
- {
- if (X.Hp <= realdamag) { realdamag -= X.Hp; listremoved.Add(X); }
- else { X.Hpminus(realdamag) ; break; }
- }
- foreach (Unit X in listremoved)
- {
- Army.Remove(X);
- }
- dam = 0;
- arm = 0;
- hepe = 0;
- foreach (Unit X in Army)
- {
- dam += X.Damage;
- try
- {
- arm += ((Bard)X).Armor;
- }
- catch (Exception)
- {
- try
- {
- arm += ((Wizard)X).Armor;
- }
- catch (Exception)
- {
- try
- {
- arm += ((Barbarian)X).Armor;
- }
- catch (Exception) { }
- }
- }
- hepe += X.Hp;
- }
- }
- public abstract class Unit
- {
- public string Name { get; private set; }
- public int Damage { get; private set; }
- public int Hp { get; private set; }
- public void Hpminus(int realdamag)
- {
- this.Hp -= realdamag;
- }
- public void ChangeDmg(int x)
- {
- this.Damage = x;
- }
- public Unit(int damage, int hp, string name)
- {
- Damage = damage;
- Hp = hp;
- Name = name;
- }
- public abstract void Display();
- }
- class Bard : Unit
- {
- public int Armor { get; private set; }
- public Bard(int damage, int hp, string name, int armor) : base(damage, hp, name)
- {
- Armor = armor;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Armor: " + Armor);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Barbarian : Unit
- {
- public int Armor { get; private set; }
- public Barbarian(int damage, int hp, string name, int armor) : base(damage, hp, name)
- {
- this.Armor = armor;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Armor: " + Armor);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Wizard : Unit
- {
- public int Armor { get; private set; }
- public Wizard(int damage, int hp, string name, int armor) : base(damage, hp, name)
- {
- Armor = armor;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Armor: " + Armor);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Camel : Unit
- {
- public int Speed { get; private set; }
- public Camel(int damage, int hp, string name, int speed) : base(damage, hp, name)
- {
- Speed = speed;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Speed: " + Speed);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Horse : Unit
- {
- public int Speed { get; private set; }
- public Horse(int damage, int hp, string name, int speed) : base(damage, hp, name)
- {
- Speed = speed;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Speed: " + Speed);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Tiger : Unit
- {
- public int Speed { get; private set; }
- public Tiger(int damage, int hp, string name, int speed) : base(damage, hp, name)
- {
- Speed = speed;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Speed: " + Speed);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- class Balista : Unit
- {
- public int Ammo { get; private set; }
- public Balista(int damage, int hp, string name, int ammo) : base(damage, hp, name)
- {
- Ammo = ammo;
- }
- public override void Display()
- {
- Console.WriteLine("///////////////");
- Console.WriteLine("Name: " + Name);
- Console.WriteLine("Hp: " + Hp);
- Console.WriteLine("Ammo: " + Ammo);
- Console.WriteLine("Damage: " + Damage);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment