Mauzzz0

TestRoma

Mar 3rd, 2020
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 12.06 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApp1
  5. //Задание  7
  6. //1.Создать виртуальную армию согласно условию.Каждый боец армии должен уметь рассказать о себе.
  7. //Армия должна уметь выводить статистику о себе: Общий урон, Общая защита, Общие здоровье, Общая численность армии.
  8. //Параметры армии:
  9. //Мех: ballista Здор = 478 боеп= Bolt(Energetic Power Wall, урон = 17)
  10. //Сол: Bard Здор = 104 урон= 5 броня= Glass Armor (доп.защита= 30)
  11. //Сол: Barbarian Здор = 234 урон=15 броня=Hide Armor(доп.защита= 10)
  12. //Сол: Wizard Здор = 51 урон=7 броня=Glass Armor(доп.защита= 30)
  13. //Жив: Camel Здор = 11 урон=0 скор=26
  14. //Жив: Horse Здор = 15 урон=0 скор=26
  15. //Жив: Tiger Здор = 35 урон=20 скор=40
  16. //Вса: 1. Наез=Barbarian Жив = Camel
  17.  
  18. //2.Реализовать метод нанесения армии урона, по следующим правилам:
  19. //1)Урон наноситься поочередно каждому юниту.
  20. //2)Из урона атаки вычитается общая защита защищающийся армии, остаток урона вычитается из здоровья защищающийся армии
  21. // по следующему принципу: из остатка урона вычитается здоровье каждого юнита,
  22. // по очереди, до тех пор пока остаток не будет равен 0, при этом юнит погибает если его здоровье меньше остатка урона, то есть удаляется из армии.
  23. //3)После каждой атаки пересчитываться характеристики армии.
  24. //4)Бой заканчивается, когда погибнут все юниты в армии.
  25. {
  26.     class Program
  27.     {
  28.         static int arm = 0;
  29.         static int dam = 0;
  30.         static int hepe = 0;
  31.         static List<Unit> Army = new List<Unit>();
  32.         static void Main(string[] args)
  33.         {
  34.             Console.WriteLine("Нажмите любую клавишу , чтобы сгенерировать армию");
  35.             Console.ReadKey();
  36.             Console.Clear();
  37.             AddUnit();
  38.             Menu();
  39.             int cmd = Convert.ToInt32(Console.ReadLine());
  40.             while (cmd != 0)
  41.             {
  42.                 Console.Clear();
  43.                 switch (cmd)
  44.                 {
  45.                     case 1:
  46.                         ArmyInfo();
  47.                         break;
  48.                     case 2:
  49.                         InfoUnit();
  50.                         break;
  51.                     case 3:
  52.                         GoDamage();
  53.                         break;
  54.                 }
  55.                 Menu();
  56.                 cmd = Convert.ToInt32(Console.ReadLine());
  57.             }
  58.         }
  59.         public static void InfoUnit()
  60.         {
  61.             foreach (Unit X in Army)
  62.             {
  63.                 X.Display();
  64.             }
  65.         }
  66.         public static void AddUnit()
  67.         {
  68.             Random rnd = new Random();
  69.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Bard(5, 104, "Bard", 30)); }
  70.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Barbarian(15, 234, "Barbarian", 10)); }
  71.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Wizard(7, 51, "Wizard", 30)); }
  72.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Camel(0, 11, "Camel", 26)); }
  73.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Horse(0, 15, "Horse", 26)); }
  74.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Tiger(20, 35, "Tiger", 40)); }
  75.             for (int i = 1; i <= rnd.Next(1, 4); i++) { Army.Add(new Balista(17, 478, "Balista", rnd.Next(0, 4))); }
  76.  
  77.             foreach (Unit X in Army)
  78.             {
  79.                 if (X.Name == "Balista" && ((Balista)X).Ammo == 0) { X.ChangeDmg(0); }
  80.  
  81.  
  82.             }
  83.             foreach (Unit X in Army)
  84.             {
  85.  
  86.                 dam += X.Damage;
  87.                 try
  88.                 {
  89.                     arm += ((Bard)X).Armor;
  90.                 }
  91.                 catch (Exception)
  92.                 {
  93.                     try
  94.                     {
  95.                         arm += ((Wizard)X).Armor;
  96.                     }
  97.                     catch (Exception)
  98.                     {
  99.                         try
  100.                         {
  101.                             arm += ((Barbarian)X).Armor;
  102.                         }
  103.                         catch (Exception) { }
  104.                     }
  105.  
  106.  
  107.                 }
  108.  
  109.                 hepe += X.Hp;
  110.  
  111.             }
  112.  
  113.         }
  114.  
  115.         static void Menu()
  116.         {
  117.             Console.WriteLine("Меню");
  118.             Console.WriteLine("1- Узнать общие характеристики армии");
  119.             Console.WriteLine("2- Узнать характериситики каждого юнита");
  120.             Console.WriteLine("3- Нанести армии урон");
  121.  
  122.  
  123.  
  124.         }
  125.  
  126.         static void ArmyInfo()
  127.         {
  128.  
  129.             Console.WriteLine("Общий урон армии: " + dam);
  130.             Console.WriteLine("Общая защита армии: " + arm);
  131.             Console.WriteLine("Общее количество Hp армии: " + hepe);
  132.         }
  133.  
  134.         static void GoDamage()
  135.         {
  136.             Console.WriteLine("Введите урон , который хотите нанести армии");
  137.             int damag = Convert.ToInt32(Console.ReadLine());
  138.             while (damag <= 0)
  139.             {
  140.                 Console.WriteLine("Введите положительное значение");
  141.                 damag = Convert.ToInt32(Console.ReadLine());
  142.             }
  143.             int realdamag = damag - arm;
  144.             List<Unit> listremoved = new List<Unit> { };
  145.             foreach (Unit X in Army)
  146.             {
  147.                 if (X.Hp <= realdamag) { realdamag -= X.Hp; listremoved.Add(X); }
  148.                 else { X.Hpminus(realdamag) ; break; }
  149.  
  150.             }
  151.             foreach (Unit X in listremoved)
  152.             {
  153.                 Army.Remove(X);
  154.             }
  155.             dam = 0;
  156.             arm = 0;
  157.             hepe = 0;
  158.             foreach (Unit X in Army)
  159.             {
  160.  
  161.                 dam += X.Damage;
  162.                 try
  163.                 {
  164.                     arm += ((Bard)X).Armor;
  165.                 }
  166.                 catch (Exception)
  167.                 {
  168.                     try
  169.                     {
  170.                         arm += ((Wizard)X).Armor;
  171.                     }
  172.                     catch (Exception)
  173.                     {
  174.                         try
  175.                         {
  176.                             arm += ((Barbarian)X).Armor;
  177.                         }
  178.                         catch (Exception) { }
  179.                     }
  180.  
  181.  
  182.                 }
  183.  
  184.                 hepe += X.Hp;
  185.  
  186.             }
  187.         }
  188.  
  189.         public abstract class Unit
  190.         {
  191.  
  192.  
  193.             public string Name { get; private set; }
  194.             public int Damage { get; private set; }
  195.             public int Hp { get; private set; }
  196.  
  197.             public void Hpminus(int realdamag)
  198.             {
  199.                 this.Hp -= realdamag;
  200.             }
  201.  
  202.             public void ChangeDmg(int x)
  203.             {
  204.                 this.Damage = x;
  205.             }
  206.             public Unit(int damage, int hp, string name)
  207.             {
  208.                 Damage = damage;
  209.                 Hp = hp;
  210.                 Name = name;
  211.             }
  212.             public abstract void Display();
  213.         }
  214.  
  215.         class Bard : Unit
  216.         {
  217.             public int Armor { get; private set; }
  218.             public Bard(int damage, int hp, string name, int armor) : base(damage, hp, name)
  219.  
  220.             {
  221.                 Armor = armor;
  222.             }
  223.             public override void Display()
  224.             {
  225.                 Console.WriteLine("///////////////");
  226.                 Console.WriteLine("Name: " + Name);
  227.                 Console.WriteLine("Hp: " + Hp);
  228.                 Console.WriteLine("Armor: " + Armor);
  229.                 Console.WriteLine("Damage: " + Damage);
  230.             }
  231.  
  232.         }
  233.         class Barbarian : Unit
  234.         {
  235.             public int Armor { get; private set; }
  236.             public Barbarian(int damage, int hp, string name, int armor) : base(damage, hp, name)
  237.  
  238.             {
  239.                 this.Armor = armor;
  240.             }
  241.             public override void Display()
  242.             {
  243.                 Console.WriteLine("///////////////");
  244.                 Console.WriteLine("Name: " + Name);
  245.                 Console.WriteLine("Hp: " + Hp);
  246.                 Console.WriteLine("Armor: " + Armor);
  247.                 Console.WriteLine("Damage: " + Damage);
  248.             }
  249.  
  250.         }
  251.  
  252.         class Wizard : Unit
  253.         {
  254.             public int Armor { get; private set; }
  255.             public Wizard(int damage, int hp, string name, int armor) : base(damage, hp, name)
  256.  
  257.             {
  258.                 Armor = armor;
  259.             }
  260.             public override void Display()
  261.             {
  262.                 Console.WriteLine("///////////////");
  263.                 Console.WriteLine("Name: " + Name);
  264.                 Console.WriteLine("Hp: " + Hp);
  265.                 Console.WriteLine("Armor: " + Armor);
  266.                 Console.WriteLine("Damage: " + Damage);
  267.             }
  268.  
  269.         }
  270.         class Camel : Unit
  271.         {
  272.             public int Speed { get; private set; }
  273.             public Camel(int damage, int hp, string name, int speed) : base(damage, hp, name)
  274.  
  275.             {
  276.                 Speed = speed;
  277.             }
  278.             public override void Display()
  279.             {
  280.                 Console.WriteLine("///////////////");
  281.                 Console.WriteLine("Name: " + Name);
  282.                 Console.WriteLine("Hp: " + Hp);
  283.                 Console.WriteLine("Speed: " + Speed);
  284.                 Console.WriteLine("Damage: " + Damage);
  285.             }
  286.  
  287.         }
  288.         class Horse : Unit
  289.         {
  290.             public int Speed { get; private set; }
  291.             public Horse(int damage, int hp, string name, int speed) : base(damage, hp, name)
  292.  
  293.             {
  294.                 Speed = speed;
  295.             }
  296.             public override void Display()
  297.             {
  298.                 Console.WriteLine("///////////////");
  299.                 Console.WriteLine("Name: " + Name);
  300.                 Console.WriteLine("Hp: " + Hp);
  301.                 Console.WriteLine("Speed: " + Speed);
  302.                 Console.WriteLine("Damage: " + Damage);
  303.             }
  304.  
  305.         }
  306.         class Tiger : Unit
  307.         {
  308.             public int Speed { get; private set; }
  309.             public Tiger(int damage, int hp, string name, int speed) : base(damage, hp, name)
  310.  
  311.             {
  312.                 Speed = speed;
  313.             }
  314.             public override void Display()
  315.             {
  316.                 Console.WriteLine("///////////////");
  317.                 Console.WriteLine("Name: " + Name);
  318.                 Console.WriteLine("Hp: " + Hp);
  319.                 Console.WriteLine("Speed: " + Speed);
  320.                 Console.WriteLine("Damage: " + Damage);
  321.             }
  322.  
  323.         }
  324.         class Balista : Unit
  325.         {
  326.  
  327.             public int Ammo { get; private set; }
  328.             public Balista(int damage, int hp, string name, int ammo) : base(damage, hp, name)
  329.  
  330.             {
  331.                 Ammo = ammo;
  332.             }
  333.             public override void Display()
  334.             {
  335.                 Console.WriteLine("///////////////");
  336.                 Console.WriteLine("Name: " + Name);
  337.                 Console.WriteLine("Hp: " + Hp);
  338.                 Console.WriteLine("Ammo: " + Ammo);
  339.                 Console.WriteLine("Damage: " + Damage);
  340.             }
  341.  
  342.         }
  343.     }
  344. }
Advertisement
Add Comment
Please, Sign In to add comment