W1thr

ООП-6

Mar 13th, 2021 (edited)
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Homework6
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Arena arena = new Arena();
  11.             arena.Fight();
  12.         }
  13.     }
  14.  
  15.     class Arena
  16.     {
  17.         private List<Fighter> _fighters = new List<Fighter>
  18.         {
  19.             new Heavy(200,25,"Heavy"),
  20.             new Archer(100,20,"Archer"),
  21.             new Healer(140,10,"Healer"),
  22.             new Wizard(80,25,"Wizard"),
  23.             new Lite(60,20,"Lite")
  24.         };
  25.  
  26.         public void Fight()
  27.         {
  28.             Random random = new Random();
  29.             int _superPowerChance;
  30.  
  31.             for (int i = 0; i < _fighters.Count; i++)
  32.             {
  33.                 Console.WriteLine(i + " Health " + _fighters[i].Health + " Damage " + _fighters[i].Damage + " Name " + _fighters[i].Name);
  34.             }
  35.  
  36.             Console.Write("Выберите первого бойца:");
  37.             Fighter firstFighter = new Fighter(Convert.ToInt32(Console.ReadLine()), _fighters);
  38.             Console.Write("Выберите второго бойца:");
  39.             Fighter secondFighter = new Fighter(Convert.ToInt32(Console.ReadLine()), _fighters);
  40.  
  41.             while (firstFighter.Health >= 0 && secondFighter.Health >= 0)
  42.             {
  43.                 firstFighter.ShowInfo();
  44.                 secondFighter.ShowInfo();
  45.  
  46.                 _superPowerChance = random.Next(0, 5);
  47.                 if (_superPowerChance == 4)
  48.                 {
  49.  
  50.                     firstFighter.SuperPower();
  51.                 }
  52.                 else
  53.                 {
  54.                     secondFighter.TakeDamage(firstFighter.Damage);
  55.                 }
  56.  
  57.                 _superPowerChance = random.Next(0, 5);
  58.                 if (_superPowerChance == 4)
  59.                 {
  60.                     secondFighter.SuperPower();
  61.                 }
  62.                 else
  63.                 {
  64.                     firstFighter.TakeDamage(secondFighter.Damage);
  65.                 }
  66.                 random.Next(0, 5);
  67.  
  68.                 firstFighter.TakeDamage(secondFighter.Damage);
  69.  
  70.             }
  71.         }
  72.     }
  73.  
  74.     class Fighter
  75.     {
  76.         public int Health { get; protected set; }
  77.         public int Damage { get; protected set; }
  78.         public string Name { get; protected set; }
  79.  
  80.         public Fighter(int health, int damage, string name)
  81.         {
  82.             Health = health;
  83.             Damage = damage;
  84.             Name = name;
  85.         }
  86.  
  87.         public Fighter(int index, List<Fighter> fighters)
  88.         {
  89.             Health = fighters[index].Health;
  90.             Damage = fighters[index].Damage;
  91.             Name = fighters[index].Name;
  92.         }
  93.  
  94.         public void TakeDamage(int damage)
  95.         {
  96.             Health -= damage;
  97.         }
  98.  
  99.         public void ShowInfo()
  100.         {
  101.             Console.WriteLine(Health);
  102.             Console.WriteLine(Damage);
  103.             Console.WriteLine();
  104.         }
  105.  
  106.         public virtual void SuperPower() { }
  107.  
  108.     }
  109.     class Heavy : Fighter
  110.     {
  111.         public Heavy(int health, int damage, string name) : base(health, damage, name) { }
  112.  
  113.         public override void SuperPower()
  114.         {
  115.             Health -= 5;
  116.             Damage += 5;
  117.         }
  118.     }
  119.     class Archer : Fighter
  120.     {
  121.         public Archer(int health, int damage, string name) : base(health, damage, name) { }
  122.  
  123.         public override void SuperPower()
  124.         {
  125.             Health += 3;
  126.             Damage += 10;
  127.         }
  128.     }
  129.     class Healer : Fighter
  130.     {
  131.         public Healer(int health, int damage, string name) : base(health, damage, name) { }
  132.  
  133.         public override void SuperPower()
  134.         {
  135.             Health += 15;
  136.             Damage += 1;
  137.         }
  138.     }
  139.     class Wizard : Fighter
  140.     {
  141.         public Wizard(int health, int damage, string name) : base(health, damage, name) { }
  142.  
  143.         public override void SuperPower()
  144.         {
  145.             Health += 30;
  146.             Damage += 5;
  147.         }
  148.     }
  149.     class Lite : Fighter
  150.     {
  151.         public Lite(int health, int damage, string name) : base(health, damage, name) { }
  152.  
  153.         public override void SuperPower()
  154.         {
  155.             Health -= 10;
  156.             Damage *= 2;
  157.         }
  158.     }
  159. }
  160.  
Advertisement
Add Comment
Please, Sign In to add comment