Advertisement
illiden

GladiatorsFight

Dec 12th, 2019
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.12 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 GladiatorsFight
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool exit = false;
  14.             Fighter fighterOne;
  15.             Fighter fighterTwo;
  16.             Random rand = new Random();
  17.  
  18.             while (!exit)
  19.             {
  20.                 Fighter[] fighters = {
  21.                 new Fighter("Bob", 100, 50, 50),
  22.                 new Fighter("Len", 200, 100, 10),
  23.                 new Fighter("Kukky", 100, 100, 20),
  24.                 new Fighter("Olly", 150, 70, 15),
  25.                 new Fighter("Ren", 150, 50, 60)
  26.                 };
  27.  
  28.                 Console.Clear();
  29.                 for (int i = 0; i < fighters.Length; i++)
  30.                 {
  31.                     Console.Write((i + 1) + ". ");
  32.                     fighters[i].ShowStats();
  33.                 }
  34.                 Console.Write("\nВыберите левого бойца: ");
  35.                 fighterOne = fighters[Convert.ToInt32(Console.ReadLine()) - 1];
  36.                 Console.Write("\nВыберите правого бойца: ");
  37.                 fighterTwo = fighters[Convert.ToInt32(Console.ReadLine()) - 1];
  38.  
  39.                 Console.Clear();
  40.                 Console.WriteLine($"На арене сражаются: {fighterOne.Name} против {fighterTwo.Name}");
  41.  
  42.                 while (fighterOne.Health > 0 && fighterTwo.Health > 0)
  43.                 {
  44.                     fighterOne.TakeDamage(fighterTwo.Damage, rand);
  45.                     fighterTwo.TakeDamage(fighterOne.Damage, rand);
  46.                     fighterOne.ShowStats();
  47.                     fighterTwo.ShowStats();
  48.                     Console.WriteLine();
  49.                 }
  50.  
  51.                 if (fighterOne.Health >= 0)
  52.                 {
  53.                     Console.WriteLine($"Сегодня победил {fighterOne.Name}");
  54.                 }
  55.                 else
  56.                 {
  57.                     Console.WriteLine($"Сегодня победил {fighterTwo.Name}");
  58.                 }
  59.  
  60.                 Console.ReadKey();
  61.             }
  62.         }
  63.     }
  64.  
  65.     class Fighter
  66.     {
  67.         public float Health { get; private set; }
  68.         public string Name { get; private set; }
  69.         public float Damage { get; private set; }
  70.         public float Armor { get; private set; }
  71.  
  72.         public Fighter(string name, float health, float damage, float armor)
  73.         {
  74.             Health = health;
  75.             Name = name;
  76.             Damage = damage;
  77.             Armor = armor;
  78.         }
  79.  
  80.         public void ShowStats()
  81.         {
  82.             Console.WriteLine($"{Name}: HP - {Health}, Damage - {Damage}, Armor - {Armor}");
  83.         }
  84.  
  85.         public void TakeDamage(float enemyDamage, Random rand)
  86.         {
  87.  
  88.             if (rand.Next(0, 100) <= rand.Next(0, 100))
  89.             {
  90.                 Console.WriteLine($"{Name} увернулся!");
  91.             }
  92.             else
  93.             {
  94.                 Health -= enemyDamage / 100 * (100 - Armor);
  95.             }
  96.         }
  97.     }
  98.  
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement