Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CSJuniorTest
- {
- class Program
- {
- static void Main(string[] args)
- {
- Arena arena = new Arena();
- arena.Fight();
- }
- }
- class Arena
- {
- private Platoon firstPlatoon = new Platoon(new List<Fighter>
- {
- new Fighter(1, 99),
- new Fighter(1, 99),
- new Fighter(1, 99),
- });
- private Platoon secondPlatoon = new Platoon(new List<Fighter>
- {
- new Fighter(1, 10),
- new Fighter(1, 10),
- new Fighter(1, 10),
- });
- public void Fight()
- {
- bool isWork = true;
- while (isWork)
- {
- ShowFightInfo();
- if (firstPlatoon.GetFightersAmount() == 0)
- {
- Console.WriteLine("Конец боя. Победила команда: 2 ");
- isWork = false;
- }
- else
- {
- firstPlatoon.Attack(secondPlatoon);
- }
- Console.ReadKey();
- ShowFightInfo();
- if (secondPlatoon.GetFightersAmount() == 0)
- {
- Console.WriteLine("Конец боя. Победила команда: 1 ");
- isWork = false;
- }
- else
- {
- secondPlatoon.Attack(firstPlatoon);
- }
- Console.ReadKey();
- }
- }
- private void ShowFightInfo()
- {
- Console.Clear();
- firstPlatoon.ShowInfo();
- secondPlatoon.ShowInfo();
- }
- }
- class Platoon
- {
- private List<Fighter> _fighters;
- public Platoon(List<Fighter> fighters)
- {
- _fighters = fighters;
- }
- public void ShowInfo()
- {
- for (int i = 0; i < _fighters.Count; i++)
- {
- Console.WriteLine($"[{i + 1}]: HP - {_fighters[i].Health}, DMG - {_fighters[i].Damage}");
- }
- Console.WriteLine();
- }
- public void Attack(Platoon targetPlatoon)
- {
- Fighter fighter = targetPlatoon.GetRandomFighter();
- fighter.TakeDamage(GetRandomFighter().Damage);
- if (fighter.Health <= 0)
- {
- targetPlatoon.DeleteFighter(fighter);
- }
- }
- public int GetFightersAmount()
- {
- return _fighters.Count;
- }
- private void DeleteFighter(Fighter fighter)
- {
- _fighters.Remove(fighter);
- }
- private Fighter GetRandomFighter()
- {
- Random rand = new Random();
- return _fighters[rand.Next(0, _fighters.Count)];
- }
- }
- class Fighter
- {
- public int Health { get; private set; }
- public int Damage { get; private set; }
- public Fighter(int health, int damage)
- {
- Health = health;
- Damage = damage;
- }
- public void TakeDamage(int damage)
- {
- Health -= damage;
- }
- public void ShowStats()
- {
- Console.WriteLine($"HP - {Health}, DMG - {Damage}");
- }
- }
- }
Add Comment
Please, Sign In to add comment