Anonim_999

War

Oct 7th, 2021 (edited)
1,268
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. namespace ConsoleApp2
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             War war = new War();
  11.             war.StartBattle();
  12.         }
  13.     }
  14.  
  15.     class War
  16.     {
  17.         private Country _country1;
  18.         private Country _country2;
  19.  
  20.         public War()
  21.         {
  22.             _country1 = new Country();
  23.             _country2 = new Country();
  24.         }
  25.  
  26.         public void StartBattle()
  27.         {
  28.  
  29.             while (_country1.SoldiersCount > 0 && _country2.SoldiersCount > 0)
  30.             {
  31.                 Soldier soldier1 = _country1.GetFirstSoldier();
  32.                 Soldier soldier2 = _country2.GetFirstSoldier();
  33.                 StartSoldiersFight(soldier1, soldier2);
  34.             }
  35.  
  36.             if (_country1.SoldiersCount > 0)
  37.             {
  38.                 Console.WriteLine("Выиграла первая страна");
  39.             }
  40.             else
  41.             {
  42.                 Console.WriteLine("Выиграла вторая страна");
  43.             }
  44.         }
  45.  
  46.         public void RemoveDeadSoldiers(Soldier soldier1, Soldier soldier2)
  47.         {
  48.             if (soldier1.IsAlive == false)
  49.             {
  50.                 _country1.RemoveSoldier(soldier1);
  51.             }
  52.  
  53.             if (soldier2.IsAlive == false)
  54.             {
  55.                 _country2.RemoveSoldier(soldier2);
  56.             }
  57.         }
  58.  
  59.         public void StartSoldiersFight(Soldier soldier1, Soldier soldier2)
  60.         {
  61.             while (soldier1.IsAlive && soldier2.IsAlive)
  62.             {
  63.                 Console.Clear();
  64.                 soldier2.TakeDamage(soldier1.Damage);
  65.                 soldier1.TakeDamage(soldier2.Damage);
  66.                 RemoveDeadSoldiers(soldier1, soldier2);
  67.                 Console.WriteLine($"Солдат первой страны:\n жизнь: {soldier1.Health} || урон: {soldier1.Damage}\n" +
  68.                     $"Солдат второй страны:\n жизнь: {soldier2.Health} || урон: {soldier2.Damage}");
  69.                 Console.WriteLine($"Количество войск:\n Первая страна: {_country1.SoldiersCount} || Вторая страна: {_country2.SoldiersCount}");
  70.                 Thread.Sleep(200);
  71.             }
  72.         }
  73.     }
  74.  
  75.     class Country
  76.     {
  77.         private List<Soldier> _platoon = new List<Soldier>();
  78.         public int SoldiersCount => _platoon.Count;
  79.  
  80.         public Country()
  81.         {
  82.             Random random = new Random();
  83.             int countSoldiers = random.Next(15, 60);
  84.  
  85.             for (int i = 0; i < countSoldiers; i++)
  86.             {
  87.                 _platoon.Add(new Soldier());
  88.             }
  89.         }
  90.  
  91.         public void ShowPlatoon()
  92.         {
  93.             int numberSoldier = 1;
  94.  
  95.             foreach (Soldier soldier in _platoon)
  96.             {
  97.                 Console.Write($"{numberSoldier}: ");
  98.                 soldier.ShowInfo();
  99.                 numberSoldier++;
  100.             }
  101.         }
  102.  
  103.         public Soldier GetFirstSoldier()
  104.         {
  105.             return _platoon[0];
  106.         }
  107.  
  108.         public void RemoveSoldier(Soldier soldier)
  109.         {
  110.             _platoon.Remove(soldier);
  111.         }
  112.     }
  113.  
  114.     class Soldier
  115.     {
  116.         public int Health { get; private set; }
  117.         public int Damage { get; }
  118.         public bool IsAlive => Health > 0;
  119.  
  120.         public Soldier()
  121.         {
  122.             Random random = new Random();
  123.             Health = random.Next(100, 250);
  124.             Damage = random.Next(25, 50);
  125.         }
  126.  
  127.         public void ShowInfo()
  128.         {
  129.             Console.WriteLine($"health: {Health} || damage: {Damage}");
  130.         }
  131.  
  132.         public void TakeDamage(int damage)
  133.         {
  134.             if (Health >= damage)
  135.             {
  136.                 Health -= damage;
  137.             }
  138.             else
  139.             {
  140.                 Health = 0;
  141.             }
  142.         }
  143.     }
  144. }
Advertisement
Add Comment
Please, Sign In to add comment