Advertisement
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 war
- {
- class Program
- {
- static void Main(string[] args)
- {
- Battle battle = new Battle();
- battle.RunMenu();
- Squad squad = new Squad();
- }
- }
- class Battle
- {
- private int Raund { get; set; }
- private Squad squadLeft;
- private Squad squadRight;
- private static Random rand;
- public Battle()
- {
- Raund = 0;
- rand = new Random();
- squadLeft = new Squad();
- squadRight = new Squad();
- }
- public void RunMenu()
- {
- bool isRun = true;
- while (isRun)
- {
- Console.WriteLine("[1] - Создать отряд\n[2] - Запустить бой\n[3] - Выход");
- switch (Console.ReadLine())
- {
- case "1":
- squadLeft.CreateSquad();
- squadRight.CreateSquad();
- break;
- case "2":
- Play(squadLeft, squadRight);
- break;
- case "3":
- isRun = false;
- break;
- }
- }
- }
- public void Play(Squad squadLeft, Squad squadRight)
- {
- if(IsGameReady() == false)
- {
- return;
- }
- while(IsGameover() == false)
- {
- Console.WriteLine("Раунд: " + ++Raund);
- Console.WriteLine("Западный отряд атакует!");
- squadLeft.GetSoldier().Attack(squadRight.GetSoldier());
- Console.WriteLine("Восточный отряд атакует!");
- squadRight.GetSoldier().Attack(squadLeft.GetSoldier());
- }
- }
- public bool IsGameover()
- {
- if(squadLeft.GetHealthSquad() <= 0)
- {
- Console.WriteLine("Западный отряд умер!");
- return true;
- }
- else if(squadRight.GetHealthSquad() <= 0)
- {
- Console.WriteLine("Восточный отряд умер!");
- return true;
- }
- Console.WriteLine("\nСилы западного отряда: " + squadLeft.GetHealthSquad());
- Console.WriteLine("Силы восточного отряда: " + squadRight.GetHealthSquad());
- return false;
- }
- public bool IsGameReady()
- {
- if (squadLeft.GetSquadSize() < 0)
- {
- Console.WriteLine("Левый отряд не создан!");
- return false;
- }
- else if(squadRight.GetSquadSize() < 0)
- {
- Console.WriteLine("Правый отряд не создан!");
- return false;
- }
- return true;
- }
- }
- class Squad
- {
- private List<Soldier> _soldiers;
- private static Random rand = new Random();
- public Squad()
- {
- _soldiers = new List<Soldier>();
- }
- public void CreateSquad()
- {
- //if (_soldiers.Count > 2)
- //{
- // Console.WriteLine("Нельзя создать больше 2 отрядов!");
- // return;
- //}
- Console.WriteLine("Создаем отряд...");
- for (int i = 0; i < 20; i++)
- {
- int number = rand.Next(0, 2);
- if (number == 0)
- {
- Medic medic = new Medic(i, rand.Next(50, 100), rand.Next(25, 50));
- _soldiers.Add(medic);
- }
- else if (number == 1)
- {
- Infantryman infantryman = new Infantryman(i, rand.Next(70, 100), rand.Next(50, 80));
- _soldiers.Add(infantryman);
- }
- else if (number == 2)
- {
- Sniper sniper = new Sniper(i, rand.Next(50, 70), rand.Next(85, 105));
- _soldiers.Add(sniper);
- }
- }
- }
- public int GetHealthSquad()
- {
- int healthSquad = 0;
- foreach (var soldier in _soldiers)
- {
- healthSquad += soldier.Health;
- }
- return healthSquad;
- }
- public int GetSquadSize()
- {
- return _soldiers.Count;
- }
- public List<Soldier> GetSoldiers()
- {
- return _soldiers;
- }
- public Soldier GetSoldier()
- {
- return _soldiers[rand.Next(0, _soldiers.Count)];
- }
- }
- abstract class Soldier
- {
- public bool IsShoot { get; protected set; }
- public bool IsAvoid { get; protected set; }
- public int Number { get; protected set; }
- public int Health { get; protected set; }
- public int Damage { get; protected set; }
- public virtual void UseAbillity()
- {
- IsAvoid = true;
- }
- public void Attack(Soldier enemy)
- {
- if(IsShoot)
- {
- IsShoot = false;
- return;
- }
- if (enemy.IsAvoid)
- {
- return;
- }
- IsShoot = true;
- enemy.Health -= Damage;
- }
- }
- class Medic : Soldier
- {
- public Medic(int number, int health, int damage)
- {
- IsShoot = false;
- IsAvoid = false;
- Number = number;
- Health = health;
- Damage = damage;
- }
- //public override void UseAbillity(List<Soldier> soldiers)
- //{
- //}
- }
- class Infantryman : Soldier
- {
- public Infantryman(int number, int health, int damage)
- {
- IsShoot = false;
- IsAvoid = false;
- Number = number;
- Health = health;
- Damage = damage;
- }
- //public override void UseAbillity(Random rand)
- //{
- //}
- }
- class Sniper : Soldier
- {
- public Sniper(int number, int health, int damage)
- {
- IsShoot = true;
- IsAvoid = false; //
- Number = number;
- Health = health;
- Damage = damage;
- }
- //public override void UseAbillity(Random rand)
- //{
- //}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement