Advertisement
BERKYT

Untitled

May 25th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.41 KB | None | 0 0
  1. using System;
  2.  
  3. namespace BERKYT
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Tools tools = new Tools();
  10.  
  11.             bool checkout = true;
  12.  
  13.             while (checkout)
  14.             {
  15.                 Console.WriteLine("Что Вы хотите сделать?" + "\n");
  16.  
  17.                 Console.WriteLine("1 - Узнать информацию о каждом бойце.");
  18.                 Console.WriteLine("2 - Узнать информацию обо всей армии.");
  19.                 Console.WriteLine("3 - Атаковать.");
  20.                 Console.WriteLine("4 - Выйти из игры." + "\n");
  21.  
  22.                 string entertextuser = Console.ReadLine();
  23.  
  24.                 switch (entertextuser)
  25.                 {
  26.                     case "1":
  27.                         tools.PrintInfoAboutEveryUnit();
  28.                         break;
  29.                     case "2":
  30.                         tools.PrintInfoAboutAllArmy();
  31.                         break;
  32.                     case "3":
  33.                         Console.Write("\n" + "Введите количество атак: ");
  34.                         string s_count = Console.ReadLine();
  35.                         try
  36.                         {
  37.                             int count = Convert.ToInt32(s_count);
  38.                             tools.Attack(count);
  39.                         }
  40.                         catch (Exception e)
  41.                         {
  42.                             Console.WriteLine(e.Message);
  43.                         }
  44.                         break;
  45.                     case "4":
  46.                         checkout = false;
  47.                         break;
  48.                 }
  49.             }
  50.         }
  51.     }
  52.  
  53.     #region Базовый класс и его наследники.
  54.     class Units
  55.     {
  56.         public int Health { get; set; }
  57.         public int Damage { get; set; }
  58.         public string Name { get; set; }
  59.  
  60.         public virtual void PrintInfo()
  61.         {
  62.             Console.WriteLine("Имя: " + Name + " Здоровье: " + Health + " Урон: " + Damage + " ");
  63.         }
  64.  
  65.         public Units(int health, int damage, string name)
  66.         {
  67.             Health = health;
  68.             Damage = damage;
  69.             Name = name;
  70.         }
  71.     }
  72.     class Mehs : Units
  73.     {
  74.         public string TypeOfAmmunition { get; set; }
  75.         public string Curse { get; set; }
  76.  
  77.         public override void PrintInfo()
  78.         {
  79.             base.PrintInfo();
  80.             Console.Write("Тип боеприпаса: " + TypeOfAmmunition + " Проклятье: " + Curse + "\n" + "\n");
  81.         }
  82.  
  83.         public Mehs(int health, int damage, string name, string typeOfAmmunition, string curse) : base(health, damage, name)
  84.         {
  85.             TypeOfAmmunition = typeOfAmmunition;
  86.             Curse = curse;
  87.         }
  88.     }
  89.     class Animal : Units
  90.     {
  91.         public int Speed { get; set; }
  92.  
  93.         public override void PrintInfo()
  94.         {
  95.             base.PrintInfo();
  96.             Console.Write("Скорость: " + Speed + "\n" + "\n");
  97.         }
  98.  
  99.         public Animal(int health, int damage, int speed, string name) : base(health, damage, name)
  100.         {
  101.             Speed = speed;
  102.         }
  103.     }
  104.     class Soldier : Units
  105.     {
  106.         public int Armor { get; set; }
  107.         public string NameOfArmor { get; set; }
  108.  
  109.         public override void PrintInfo()
  110.         {
  111.             base.PrintInfo();
  112.             Console.Write("Броня: " + Armor + " Название брони: " + NameOfArmor + "\n" + "\n");
  113.         }
  114.  
  115.         public Soldier(int armor, int health, int damage, string name, string nameofarmor) : base(health, damage, name)
  116.         {
  117.             Armor = armor;
  118.             NameOfArmor = nameofarmor;
  119.         }
  120.     }
  121.     class Rider : Units
  122.     {
  123.         public int Armor { get; set; }
  124.         public int Speed { get; set; }
  125.         public string NameOfArmor { get; set; }
  126.  
  127.         public override void PrintInfo()
  128.         {
  129.             base.PrintInfo();
  130.             Console.Write("Броня: " + Armor + " Скорость: " + Speed + " Название брони: " + NameOfArmor + "\n" + "\n");
  131.         }
  132.  
  133.         public Rider(int armor, int health, int damage, int speed, string name, string nameofarmor) : base(health, damage, name)
  134.         {
  135.             Armor = armor;
  136.             NameOfArmor = nameofarmor;
  137.             Speed = speed;
  138.         }
  139.  
  140.     }
  141.     #endregion
  142.     class Tools
  143.     {
  144.         #region Конструктор класса, поля и массивы классов, а также статистика.
  145.  
  146.         int alldamage = 0, allhealth = 0, allarmor = 0, countarmy = 6;
  147.         int[] arrayhealth = new int[6];
  148.  
  149.         Mehs[] mehs = new Mehs[3];
  150.         Rider riders = new Rider(20, 97, 19, 17, "Наез=Druid Жив = Wolf", "Leather Armor");
  151.         Animal wolf = new Animal(28, 5, 17, "Wolf");
  152.         Soldier druid = new Soldier(20, 69, 14, "Druid", "Leather Armor");
  153.  
  154.         public Tools()
  155.         {
  156.             mehs[0] = new Mehs(875, 15, "Catapult", "Bolt", "Sonic Draconic Bite");
  157.             mehs[1] = new Mehs(716, 15, "Catapult", "Bolt", "Shrieking Ancestral Surge");
  158.             mehs[2] = new Mehs(876, 26, "Catapult", "Bullet", "Astral Sonic Blast");
  159.  
  160.             allarmor += druid.Armor + riders.Armor;
  161.  
  162.             arrayhealth[0] = mehs[0].Health;
  163.             arrayhealth[1] = mehs[1].Health;
  164.             arrayhealth[2] = mehs[2].Health;
  165.             arrayhealth[3] = riders.Health;
  166.             arrayhealth[4] = wolf.Health;
  167.             arrayhealth[5] = druid.Health;
  168.         }
  169.  
  170.         public void Stats()
  171.         {
  172.             alldamage = 0; allhealth = 0;
  173.             for (int i = 0; i < 3; i++)
  174.             {
  175.                 alldamage += mehs[i].Damage;
  176.                 allhealth += mehs[i].Health;
  177.                 if (i == 1)
  178.                 {
  179.                     alldamage += wolf.Damage + druid.Damage + riders.Damage;
  180.                     allhealth += wolf.Health + druid.Health + riders.Health;
  181.                 }
  182.             }
  183.         }
  184.  
  185.         #endregion
  186.         #region Методы вывода на консоль.
  187.         public void PrintInfoAboutEveryUnit()
  188.         {
  189.             for (int i = 0; i < 2; i++)
  190.             {
  191.                 mehs[i].PrintInfo();
  192.                 if (i == 1)
  193.                 {
  194.                     wolf.PrintInfo();
  195.                     druid.PrintInfo();
  196.                     riders.PrintInfo();
  197.                 }
  198.             }
  199.         }
  200.  
  201.         public void PrintInfoAboutAllArmy()
  202.         {
  203.             Stats();
  204.             Console.WriteLine("Общий урон: " + alldamage + " Общая защита: " + allarmor + " Общее здоровье: " + allhealth + " Общая численность: " + countarmy + "\n");
  205.         }
  206.  
  207.         #endregion
  208.  
  209.         public void Attack(int count)
  210.         {
  211.             if (countarmy > 0)
  212.             {
  213.                 for (int j = 0; j < count; j++)
  214.                 {
  215.                     for (int i = 0; i < 6; i++)
  216.                     {
  217.                         Stats();
  218.  
  219.                         if (arrayhealth[i] <= 0)
  220.                             continue;
  221.  
  222.                         allarmor -= alldamage;
  223.                         if (allarmor < 0)
  224.                         {
  225.                             alldamage = allarmor * -1;
  226.                             allarmor = 0;
  227.                         }
  228.                         else if (allarmor > 0)
  229.                             return;
  230.  
  231.                         arrayhealth[i] -= alldamage;
  232.                         if (arrayhealth[i] <= 0)
  233.                         {
  234.                             alldamage = arrayhealth[i] * -1;
  235.                             arrayhealth[i] = 0;
  236.                             countarmy--;
  237.                         }
  238.                         else if (arrayhealth[i] > 0)
  239.                             break;
  240.                     }
  241.                 }
  242.                 mehs[0].Health = arrayhealth[0];
  243.                 mehs[1].Health = arrayhealth[1];
  244.                 mehs[2].Health = arrayhealth[2];
  245.                 riders.Health = arrayhealth[3];
  246.                 wolf.Health = arrayhealth[4];
  247.                 druid.Health = arrayhealth[5];
  248.             }
  249.             else
  250.                 Console.WriteLine("\n" + "Вы уничтожили противника!"+ "\n");
  251.         }
  252.     }
  253. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement