Rotmayer

123

Jan 18th, 2021 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.52 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace CSJuniorTest
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Arena arena = new Arena();
  14.             arena.Fight();
  15.         }
  16.     }
  17.  
  18.     class Arena
  19.     {
  20.         private Platoon firstPlatoon = new Platoon(new List<Fighter>
  21.             {
  22.                 new Fighter(1, 99),
  23.                 new Fighter(1, 99),
  24.                 new Fighter(1, 99),
  25.             });
  26.  
  27.         private Platoon secondPlatoon = new Platoon(new List<Fighter>
  28.             {
  29.                 new Fighter(1, 10),
  30.                 new Fighter(1, 10),
  31.                 new Fighter(1, 10),
  32.             });
  33.  
  34.         public void Fight()
  35.         {
  36.             bool isWork = true;
  37.  
  38.             while (isWork)
  39.             {
  40.                 ShowFightInfo();
  41.  
  42.                 if (firstPlatoon.GetFightersAmount() == 0)
  43.                 {
  44.                     Console.WriteLine("Конец боя. Победила команда: 2 ");
  45.                     isWork = false;
  46.                 }
  47.                 else
  48.                 {
  49.                     firstPlatoon.Attack(secondPlatoon);
  50.                 }
  51.  
  52.                 Console.ReadKey();
  53.                 ShowFightInfo();
  54.  
  55.                 if (secondPlatoon.GetFightersAmount() == 0)
  56.                 {
  57.                     Console.WriteLine("Конец боя. Победила команда: 1 ");
  58.                     isWork = false;
  59.                 }
  60.                 else
  61.                 {
  62.                     secondPlatoon.Attack(firstPlatoon);
  63.                 }
  64.  
  65.                 Console.ReadKey();
  66.             }
  67.         }
  68.  
  69.         private void ShowFightInfo()
  70.         {
  71.             Console.Clear();
  72.             firstPlatoon.ShowInfo();
  73.             secondPlatoon.ShowInfo();
  74.         }
  75.     }
  76.  
  77.     class Platoon
  78.     {
  79.         private List<Fighter> _fighters;
  80.  
  81.         public Platoon(List<Fighter> fighters)
  82.         {
  83.             _fighters = fighters;
  84.         }
  85.  
  86.         public void ShowInfo()
  87.         {
  88.             for (int i = 0; i < _fighters.Count; i++)
  89.             {
  90.                 Console.WriteLine($"[{i + 1}]: HP - {_fighters[i].Health}, DMG - {_fighters[i].Damage}");
  91.             }
  92.             Console.WriteLine();
  93.         }
  94.  
  95.         public void Attack(Platoon targetPlatoon)
  96.         {
  97.             Fighter fighter = targetPlatoon.GetRandomFighter();
  98.             fighter.TakeDamage(GetRandomFighter().Damage);
  99.             if (fighter.Health <= 0)
  100.             {
  101.                 targetPlatoon.DeleteFighter(fighter);
  102.             }
  103.         }
  104.  
  105.         public int GetFightersAmount()
  106.         {
  107.             return _fighters.Count;
  108.         }
  109.  
  110.         private void DeleteFighter(Fighter fighter)
  111.         {
  112.             _fighters.Remove(fighter);
  113.         }
  114.  
  115.         private Fighter GetRandomFighter()
  116.         {
  117.             Random rand = new Random();
  118.             return _fighters[rand.Next(0, _fighters.Count)];
  119.         }
  120.     }
  121.  
  122.     class Fighter
  123.     {
  124.         public int Health { get; private set; }
  125.         public int Damage { get; private set; }
  126.  
  127.         public Fighter(int health, int damage)
  128.         {
  129.             Health = health;
  130.             Damage = damage;
  131.         }
  132.  
  133.         public void TakeDamage(int damage)
  134.         {
  135.             Health -= damage;
  136.         }
  137.  
  138.         public void ShowStats()
  139.         {
  140.             Console.WriteLine($"HP - {Health}, DMG - {Damage}");
  141.         }
  142.     }
  143. }
Add Comment
Please, Sign In to add comment