Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace _6._8
- {
- class Program
- {
- static void Main(string[] args)
- {
- War war = new War();
- Squad leftSquad = new Squad();
- Squad rightSquad = new Squad();
- Console.WriteLine("Сколько солдат будет в 1 стране?");
- int leftSoldiersCount = Convert.ToInt32(Console.ReadLine());
- leftSquad.CreateSquad(leftSoldiersCount);
- Console.WriteLine("\nСколько солдат будет во 2 стране?");
- int rightSoldiersCount = Convert.ToInt32(Console.ReadLine());
- rightSquad.CreateSquad(rightSoldiersCount);
- war.GunPlay(leftSquad, rightSquad);
- war.WinnerSquad(leftSquad, rightSquad);
- }
- }
- class War
- {
- public void GunPlay(Squad firstSquad, Squad secondSquad)
- {
- bool endOfWar = false;
- while (!endOfWar)
- {
- if (firstSquad.CountSoldiers() > 0 && secondSquad.CountSoldiers() > 0)
- {
- Console.WriteLine("Атакует 1 страна");
- firstSquad.Attack(secondSquad);
- }
- if (firstSquad.CountSoldiers() > 0 && secondSquad.CountSoldiers() > 0)
- {
- Console.WriteLine("Атакует 2 страна");
- secondSquad.Attack(firstSquad);
- }
- else
- {
- endOfWar = true;
- }
- }
- }
- public void WinnerSquad(Squad firstSquad, Squad secondSquad)
- {
- if (firstSquad.CountSoldiers() > 0)
- {
- Console.WriteLine($"Победила 1 страна.");
- }
- else
- {
- Console.WriteLine($"Победила 2 страна.");
- }
- }
- }
- class Squad
- {
- private List<Soldier> _soldiers = new List<Soldier>();
- public void CreateSquad(int count)
- {
- while (count > _soldiers.Count)
- {
- Console.WriteLine("Выберите бойца в ваш отряд.\n1 - Штурмовик\n2 - Медик\n3 - Разведчик\n4 - Танкист\n5 - Огнеметчик");
- int userInput = Convert.ToInt32(Console.ReadLine());
- switch (userInput)
- {
- case 1:
- _soldiers.Add(new StormTrooper());
- break;
- case 2:
- _soldiers.Add(new Support());
- break;
- case 3:
- _soldiers.Add(new Scout());
- break;
- case 4:
- _soldiers.Add(new Tankman());
- break;
- case 5:
- _soldiers.Add(new Flamethrowerman());
- break;
- default:
- _soldiers.Add(new Soldier());
- break;
- }
- }
- Console.Clear();
- Console.WriteLine("Ваш отряд:");
- foreach (var soldier in _soldiers)
- {
- soldier.ShowStats();
- }
- }
- public void Attack(Squad defenderSquad)
- {
- Random random = new Random();
- int defender = random.Next(0, defenderSquad._soldiers.Count);
- int attackers = random.Next(0, _soldiers.Count);
- defenderSquad._soldiers[defender].TakeDamage(_soldiers[attackers].Damage);
- Console.WriteLine($"{defenderSquad._soldiers[defender].Name} получают урон {_soldiers[attackers].Damage} от {_soldiers[attackers].Name}");
- defenderSquad._soldiers[defender].ShowStats();
- if (defenderSquad._soldiers[defender].Health <= 0)
- {
- Console.WriteLine($"{defenderSquad._soldiers[defender].Name} погиб.");
- defenderSquad._soldiers.RemoveAt(defender);
- }
- Console.ReadKey();
- }
- public int CountSoldiers()
- {
- return _soldiers.Count;
- }
- }
- class Soldier
- {
- public string Name { get; private set; }
- public int Health { get; private set; }
- public int Damage { get; private set; }
- public Soldier(string name = "Soldier", int health = 100, int damage = 10)
- {
- Name = name;
- Health = health;
- Damage = damage;
- }
- public void TakeDamage(int damage)
- {
- Health -= damage;
- }
- public void ShowStats()
- {
- Console.WriteLine($"{Name}, HP - {Health}, damage - {Damage}");
- }
- }
- class StormTrooper : Soldier
- {
- public StormTrooper() : base("Штурмовик", 100, 30) { }
- }
- class Support : Soldier
- {
- public Support() : base("Медик", 150, 15) { }
- }
- class Scout : Soldier
- {
- public Scout() : base("Разведчик", 80, 60) { }
- }
- class Tankman : Soldier
- {
- public Tankman() : base("Танкист", 200, 50) { }
- }
- class Flamethrowerman : Soldier
- {
- public Flamethrowerman() : base("Огнеметчик", 140, 40) { }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement