Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Homework8
- {
- class Program
- {
- static void Main(string[] args)
- {
- Troop troop1 = new Troop(12);
- Troop troop2 = new Troop(12);
- Arena arena = new Arena();
- arena.Fight(troop1, troop2);
- }
- }
- class Arena
- {
- public void Fight(Troop troop1, Troop troop2)
- {
- bool troopHasSoldiers = true;
- while (troopHasSoldiers == true)
- {
- int timeToFight = 30;
- Console.WriteLine("--Взвод1--");
- troop1.ShowStats();
- Console.WriteLine("--Взвод2--");
- troop2.ShowStats();
- Soldier soldier1 = troop1.Soldiers.Peek();
- Soldier soldier2 = troop2.Soldiers.Peek();
- soldier1.Attack(soldier2);
- soldier2.Attack(soldier1);
- troop1.FilterSoldiers();
- troop2.FilterSoldiers();
- troopHasSoldiers = (troop1.Soldiers.Count > 0 && troop2.Soldiers.Count > 0);
- System.Threading.Thread.Sleep(timeToFight);
- Console.Clear();
- }
- Console.WriteLine(troop1.Capacity + " Солдат осталось в первом взводе");
- Console.WriteLine(troop2.Capacity + " Солдат осталось во втором взводе");
- if (troop2.Capacity == 0 && troop1.Capacity > 0)
- {
- Console.WriteLine("Первый взвод победил!");
- }
- else if (troop1.Capacity == 0 && troop2.Capacity > 0)
- {
- Console.WriteLine("Второй взвод победил!");
- }
- else
- {
- Console.WriteLine("Ничья!");
- }
- Console.ReadKey();
- }
- }
- class Troop
- {
- public Queue<Soldier> Soldiers { get; private set; }
- public int Capacity { get; private set; }
- public Troop(int capacity)
- {
- Soldiers = new Queue<Soldier>();
- for (int i = 0; i < capacity; i++)
- {
- Soldiers.Enqueue(new Soldier());
- }
- Capacity = capacity;
- }
- public void ShowStats()
- {
- foreach (var soldier in Soldiers)
- {
- soldier.ShowInfo();
- }
- Console.WriteLine();
- }
- public void FilterSoldiers()
- {
- if (Soldiers.Peek().Health <= 0)
- {
- Soldiers.Dequeue();
- Capacity--;
- }
- }
- }
- class Soldier
- {
- private static Random _random;
- public int Health { get; private set; }
- public int Damage { get; private set; }
- static Soldier()
- {
- _random = new Random();
- }
- public Soldier()
- {
- Health = _random.Next(15, 25);
- Damage = _random.Next(8, 13);
- }
- public void ShowInfo()
- {
- Console.WriteLine("Здоровье - " + Health);
- Console.WriteLine("Урон - " + Damage);
- }
- public void Attack(Soldier soldier)
- {
- soldier.TakeDamage(Damage);
- }
- private void TakeDamage(int damage)
- {
- Health -= damage;
- }
- }
- }
Add Comment
Please, Sign In to add comment