Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Threading;
- namespace ConsoleApp2
- {
- class Program
- {
- static void Main(string[] args)
- {
- War war = new War();
- war.StartBattle();
- }
- }
- class War
- {
- private Country _country1;
- private Country _country2;
- public War()
- {
- _country1 = new Country();
- _country2 = new Country();
- }
- public void StartBattle()
- {
- while (_country1.SoldiersCount > 0 && _country2.SoldiersCount > 0)
- {
- Soldier soldier1 = _country1.GetFirstSoldier();
- Soldier soldier2 = _country2.GetFirstSoldier();
- StartSoldiersFight(soldier1, soldier2);
- }
- if (_country1.SoldiersCount > 0)
- {
- Console.WriteLine("Выиграла первая страна");
- }
- else
- {
- Console.WriteLine("Выиграла вторая страна");
- }
- }
- public void RemoveDeadSoldiers(Soldier soldier1, Soldier soldier2)
- {
- if (soldier1.IsAlive == false)
- {
- _country1.RemoveSoldier(soldier1);
- }
- if (soldier2.IsAlive == false)
- {
- _country2.RemoveSoldier(soldier2);
- }
- }
- public void StartSoldiersFight(Soldier soldier1, Soldier soldier2)
- {
- while (soldier1.IsAlive && soldier2.IsAlive)
- {
- Console.Clear();
- soldier2.TakeDamage(soldier1.Damage);
- soldier1.TakeDamage(soldier2.Damage);
- RemoveDeadSoldiers(soldier1, soldier2);
- Console.WriteLine($"Солдат первой страны:\n жизнь: {soldier1.Health} || урон: {soldier1.Damage}\n" +
- $"Солдат второй страны:\n жизнь: {soldier2.Health} || урон: {soldier2.Damage}");
- Console.WriteLine($"Количество войск:\n Первая страна: {_country1.SoldiersCount} || Вторая страна: {_country2.SoldiersCount}");
- Thread.Sleep(200);
- }
- }
- }
- class Country
- {
- private List<Soldier> _platoon = new List<Soldier>();
- public int SoldiersCount => _platoon.Count;
- public Country()
- {
- Random random = new Random();
- int countSoldiers = random.Next(15, 60);
- for (int i = 0; i < countSoldiers; i++)
- {
- _platoon.Add(new Soldier());
- }
- }
- public void ShowPlatoon()
- {
- int numberSoldier = 1;
- foreach (Soldier soldier in _platoon)
- {
- Console.Write($"{numberSoldier}: ");
- soldier.ShowInfo();
- numberSoldier++;
- }
- }
- public Soldier GetFirstSoldier()
- {
- return _platoon[0];
- }
- public void RemoveSoldier(Soldier soldier)
- {
- _platoon.Remove(soldier);
- }
- }
- class Soldier
- {
- public int Health { get; private set; }
- public int Damage { get; }
- public bool IsAlive => Health > 0;
- public Soldier()
- {
- Random random = new Random();
- Health = random.Next(100, 250);
- Damage = random.Next(25, 50);
- }
- public void ShowInfo()
- {
- Console.WriteLine($"health: {Health} || damage: {Damage}");
- }
- public void TakeDamage(int damage)
- {
- if (Health >= damage)
- {
- Health -= damage;
- }
- else
- {
- Health = 0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment