Advertisement
BERKYT

Untitled

May 26th, 2020
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.91 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.             if (Health <= 0)
  63.                 Console.WriteLine("Юнит " + Name + " мертв." + "\n" + "\n");
  64.             else
  65.                 Console.WriteLine("Имя: " + Name + " Здоровье: " + Health + " Урон: " + Damage + " ");
  66.         }
  67.  
  68.         public Units(int health, int damage, string name)
  69.         {
  70.             Health = health;
  71.             Damage = damage;
  72.             Name = name;
  73.         }
  74.     }
  75.     class Mehs : Units
  76.     {
  77.         public string TypeOfAmmunition { get; set; }
  78.         public string Curse { get; set; }
  79.  
  80.         public override void PrintInfo()
  81.         {
  82.             base.PrintInfo();
  83.             if (Health <= 0)
  84.                 return;
  85.             Console.Write("Тип боеприпаса: " + TypeOfAmmunition + " Проклятье: " + Curse + "\n" + "\n");
  86.         }
  87.  
  88.         public Mehs(int health, int damage, string name, string typeOfAmmunition, string curse) : base(health, damage, name)
  89.         {
  90.             TypeOfAmmunition = typeOfAmmunition;
  91.             Curse = curse;
  92.         }
  93.     }
  94.     class Animal : Units
  95.     {
  96.         public int Speed { get; set; }
  97.  
  98.         public override void PrintInfo()
  99.         {
  100.             base.PrintInfo();
  101.             if (Health <= 0)
  102.                 return;
  103.             Console.Write("Скорость: " + Speed + "\n" + "\n");
  104.         }
  105.  
  106.         public Animal(int health, int damage, int speed, string name) : base(health, damage, name)
  107.         {
  108.             Speed = speed;
  109.         }
  110.     }
  111.     class Soldier : Units
  112.     {
  113.         public int Armor { get; set; }
  114.         public string NameOfArmor { get; set; }
  115.  
  116.         public override void PrintInfo()
  117.         {
  118.             base.PrintInfo();
  119.             if (Health <= 0)
  120.                 return;
  121.             Console.Write("Броня: " + Armor + " Название брони: " + NameOfArmor + "\n" + "\n");
  122.         }
  123.  
  124.         public Soldier(int armor, int health, int damage, string name, string nameofarmor) : base(health, damage, name)
  125.         {
  126.             Armor = armor;
  127.             NameOfArmor = nameofarmor;
  128.         }
  129.     }
  130.     class Rider : Units
  131.     {
  132.         public int Armor { get; set; }
  133.         public int Speed { get; set; }
  134.         public string NameOfArmor { get; set; }
  135.  
  136.         public override void PrintInfo()
  137.         {
  138.             base.PrintInfo();
  139.             if (Health <= 0)
  140.                 return;
  141.             Console.Write("Броня: " + Armor + " Скорость: " + Speed + " Название брони: " + NameOfArmor + "\n" + "\n");
  142.         }
  143.  
  144.         public Rider(int armor, int health, int damage, int speed, string name, string nameofarmor) : base(health, damage, name)
  145.         {
  146.             Armor = armor;
  147.             NameOfArmor = nameofarmor;
  148.             Speed = speed;
  149.         }
  150.  
  151.     }
  152.     #endregion
  153.     class Tools
  154.     {
  155.         #region Конструктор класса, поля и массивы классов, а также статистика.
  156.  
  157.         int alldamage = 0, allhealth = 0, allarmor = 0, countarmy = 6;
  158.         int[] arrayhealth = new int[6];
  159.  
  160.         Mehs[] mehs = new Mehs[3];
  161.         Rider riders = new Rider(20, 97, 19, 17, "Rider", "Leather Armor");
  162.         Animal wolf = new Animal(28, 5, 17, "Wolf");
  163.         Soldier druid = new Soldier(20, 69, 14, "Druid", "Leather Armor");
  164.  
  165.         public Tools()
  166.         {
  167.             mehs[0] = new Mehs(875, 15, "Catapult", "Bolt", "Sonic Draconic Bite");
  168.             mehs[1] = new Mehs(716, 15, "Catapult", "Bolt", "Shrieking Ancestral Surge");
  169.             mehs[2] = new Mehs(876, 26, "Catapult", "Bullet", "Astral Sonic Blast");
  170.  
  171.             allarmor += druid.Armor + riders.Armor;
  172.  
  173.             arrayhealth[0] = mehs[0].Health;
  174.             arrayhealth[1] = mehs[1].Health;
  175.             arrayhealth[2] = mehs[2].Health;
  176.             arrayhealth[3] = riders.Health;
  177.             arrayhealth[4] = wolf.Health;
  178.             arrayhealth[5] = druid.Health;
  179.         }
  180.  
  181.         public void Stats()
  182.         {
  183.             alldamage = 0; allhealth = 0;
  184.             for (int i = 0; i < 3; i++)
  185.             {
  186.                 alldamage += mehs[i].Damage;
  187.                 allhealth += mehs[i].Health;
  188.                 if (i == 1)
  189.                 {
  190.                     alldamage += wolf.Damage + druid.Damage + riders.Damage;
  191.                     allhealth += wolf.Health + druid.Health + riders.Health;
  192.                 }
  193.             }
  194.         }
  195.  
  196.         #endregion
  197.         #region Методы вывода на консоль.
  198.         public void PrintInfoAboutEveryUnit()
  199.         {
  200.             for (int i = 0; i < 3; i++)
  201.             {
  202.                 mehs[i].PrintInfo();
  203.                 if (i == 2)
  204.                 {
  205.                     riders.PrintInfo();
  206.                     wolf.PrintInfo();
  207.                     druid.PrintInfo();
  208.                 }
  209.             }
  210.         }
  211.  
  212.         public void PrintInfoAboutAllArmy()
  213.         {
  214.             Stats();
  215.             if (allhealth == 0)
  216.                 alldamage = 0;
  217.             Console.WriteLine("Общий урон: " + alldamage + " Общая защита: " + allarmor + " Общее здоровье: " + allhealth + " Общая численность: " + countarmy + "\n");
  218.         }
  219.  
  220.         #endregion
  221.  
  222.         public void Attack(int count)
  223.         {
  224.             if (countarmy > 0)
  225.             {
  226.                 for (int j = 0; j < count; j++)
  227.                 {
  228.                     Stats();
  229.  
  230.                     for (int i = 0; i < 6; i++)
  231.                     {
  232.                         if (arrayhealth[i] <= 0)
  233.                             continue;
  234.  
  235.                         allarmor -= alldamage;
  236.                         if (allarmor < 0)
  237.                         {
  238.                             alldamage = allarmor * -1;
  239.                             allarmor = 0;
  240.                         }
  241.                         else if (allarmor > 0)
  242.                             return;
  243.  
  244.                         arrayhealth[i] -= alldamage;
  245.                         if (arrayhealth[i] <= 0)
  246.                         {
  247.                             alldamage = arrayhealth[i] * -1;
  248.                             arrayhealth[i] = 0;
  249.                             countarmy--;
  250.                             if (arrayhealth[i] < 0)
  251.                                 alldamage = arrayhealth[i] * -1;
  252.                         }
  253.                         else if (arrayhealth[i] > 0)
  254.                             break;
  255.                     }
  256.                 }
  257.                 mehs[0].Health = arrayhealth[0];
  258.                 mehs[1].Health = arrayhealth[1];
  259.                 mehs[2].Health = arrayhealth[2];
  260.                 riders.Health = arrayhealth[3];
  261.                 wolf.Health = arrayhealth[4];
  262.                 druid.Health = arrayhealth[5];
  263.             }
  264.             else
  265.                 Console.WriteLine("\n" + "Вы уничтожили противника!"+ "\n");
  266.         }
  267.     }
  268. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement