Advertisement
vovanhik_24

#49.1

Oct 29th, 2024 (edited)
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.35 KB | None | 0 0
  1.         public class Program
  2.         {
  3.             static void Main(string[] args)
  4.             {
  5.                 Zoo zoo = new Zoo();
  6.                 zoo.RunApp();
  7.             }
  8.         }
  9.  
  10.         public enum Genders
  11.         {
  12.             Male,
  13.             Female
  14.         }
  15.  
  16.         public enum Sounds
  17.         {
  18.             Roar,
  19.             Growl,
  20.             Squeak,
  21.             Laugh,
  22.             Cluck
  23.         }
  24.  
  25.         public class Animal
  26.         {
  27.             public Animal(Sounds sound)
  28.             {
  29.                 Sound = sound;
  30.                 CreateRandomGender();
  31.             }
  32.  
  33.             public Sounds Sound { get; private set; }
  34.             public Genders Gender { get; private set; }
  35.  
  36.             private void CreateRandomGender()
  37.             {
  38.                 Genders gender = (Genders)UserUtils.GenerateRandom(1);
  39.                 Gender = gender;
  40.             }
  41.         }
  42.  
  43.         public class Aviary
  44.         {
  45.             private readonly List<Animal> _animalsList;
  46.  
  47.             public Aviary(string name, List<Animal> animals)
  48.             {
  49.                 Name = name;
  50.                 _animalsList = animals;
  51.             }
  52.  
  53.             public string Name { get; private set; }
  54.  
  55.             public void DisplayInfo()
  56.             {
  57.                 Console.WriteLine($"Вольер: {Name}");
  58.                 Console.WriteLine($"Количество животных: {_animalsList.Count}");
  59.                 Console.WriteLine("Информация о животных:");
  60.  
  61.                 foreach (Animal animal in _animalsList)
  62.                 {
  63.                     Console.WriteLine($"- Пол: {animal.Gender}, Звук: {animal.Sound}");
  64.                 }
  65.             }
  66.         }
  67.  
  68.         class AviaryCreator
  69.         {
  70.             private readonly List<Aviary> _aviarysList;
  71.  
  72.             public AviaryCreator()
  73.             {
  74.                 _aviarysList = new List<Aviary>();
  75.                 InitializeEnclosures();
  76.             }
  77.  
  78.             public List<Aviary> GetAviaries()
  79.             {
  80.                 return _aviarysList;
  81.             }
  82.  
  83.             private void InitializeEnclosures()
  84.             {
  85.  
  86.                 AnimalCreate lionFactory = new Lion();
  87.                 List<Animal> lions = lionFactory.CreateAnimals(5);
  88.                 _aviarysList.Add(new Aviary("Львиный вольер", lions));
  89.  
  90.                 AnimalCreate crocodileFactory = new Crocodile();
  91.                 List<Animal> crocodiles = crocodileFactory.CreateAnimals(4);
  92.                 _aviarysList.Add(new Aviary("Крокодилий вольер", crocodiles));
  93.  
  94.                 AnimalCreate monkeyFactory = new Monkey();
  95.                 List<Animal> monkeys = monkeyFactory.CreateAnimals(6);
  96.                 _aviarysList.Add(new Aviary("Обезьяний вольер", monkeys));
  97.  
  98.                 AnimalCreate birdFactory = new Bird();
  99.                 List<Animal> birds = birdFactory.CreateAnimals(8);
  100.                 _aviarysList.Add(new Aviary("Вольер с хищными птицами", birds));
  101.             }
  102.         }
  103.  
  104.         public abstract class AnimalCreate
  105.         {
  106.             public abstract List<Animal> CreateAnimals(int count);
  107.         }
  108.  
  109.         public class Lion : AnimalCreate
  110.         {
  111.             public override List<Animal> CreateAnimals(int count)
  112.             {
  113.                 List<Animal> lions = new List<Animal>();
  114.  
  115.                 for (int i = 0; i < count; i++)
  116.                 {
  117.                     lions.Add(new Animal(Sounds.Roar));
  118.                 }
  119.  
  120.                 return lions;
  121.             }
  122.         }
  123.  
  124.         public class Crocodile : AnimalCreate
  125.         {
  126.             public override List<Animal> CreateAnimals(int count)
  127.             {
  128.                 List<Animal> crocodiles = new List<Animal>();
  129.  
  130.                 for (int i = 0; i < count; i++)
  131.                 {
  132.                     crocodiles.Add(new Animal(Sounds.Growl));
  133.                 }
  134.  
  135.                 return crocodiles;
  136.             }
  137.         }
  138.  
  139.         public class Monkey : AnimalCreate
  140.         {
  141.             public override List<Animal> CreateAnimals(int count)
  142.             {
  143.                 List<Animal> monkeys = new List<Animal>();
  144.  
  145.                 for (int i = 0; i < count; i++)
  146.                 {
  147.                     monkeys.Add(new Animal(Sounds.Laugh));
  148.                 }
  149.  
  150.                 return monkeys;
  151.             }
  152.         }
  153.  
  154.         public class Bird : AnimalCreate
  155.         {
  156.             public override List<Animal> CreateAnimals(int count)
  157.             {
  158.                 List<Animal> Birds = new List<Animal>();
  159.  
  160.                 for (int i = 0; i < count; i++)
  161.                 {
  162.                     Birds.Add(new Animal(Sounds.Cluck));
  163.                 }
  164.  
  165.                 return Birds;
  166.             }
  167.         }
  168.  
  169.         public class Zoo
  170.         {
  171.             private readonly AviaryCreator _aviaryCreator;
  172.             private readonly List<Aviary> _aviarysList;
  173.  
  174.             public Zoo()
  175.             {
  176.                 _aviaryCreator = new AviaryCreator();
  177.                 _aviarysList = _aviaryCreator.GetAviaries();
  178.             }
  179.  
  180.             public void RunApp()
  181.             {
  182.                 const int ExitCommand = 0;
  183.                 bool isWorking = true;
  184.  
  185.                 while (isWorking)
  186.                 {
  187.                     Console.Clear();
  188.                     Console.WriteLine("Выберите вольер, к которому вы хотите подойти:\n");
  189.  
  190.                     for (int i = 0; i < _aviarysList.Count; i++)
  191.                     {
  192.                         Console.WriteLine($"{i + 1}. {_aviarysList[i].Name}");
  193.                     }
  194.  
  195.                     Console.WriteLine($"\n{ExitCommand}. Выход");
  196.                     Console.Write("\nВведите номер: ");
  197.  
  198.                     if (int.TryParse(Console.ReadLine(), out int choice))
  199.                     {
  200.                         if (choice == ExitCommand)
  201.                         {
  202.                             isWorking = false;
  203.                         }
  204.                         else if (choice >= 1 && choice <= _aviarysList.Count)
  205.                         {
  206.                             Console.Clear();
  207.                             Aviary selectedEnclosure = _aviarysList[choice - 1];
  208.                             selectedEnclosure.DisplayInfo();
  209.                             Console.WriteLine("Нажмите Enter, чтобы вернуться в меню.");
  210.                             Console.ReadLine();
  211.                         }
  212.                         else
  213.                         {
  214.                             Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
  215.                             Console.ReadLine();
  216.                         }
  217.                     }
  218.                     else
  219.                     {
  220.                         Console.WriteLine("Некорректный ввод. Пожалуйста, введите число.");
  221.                         Console.ReadLine();
  222.                     }
  223.                 }
  224.             }
  225.         }
  226.  
  227.         class UserUtils
  228.         {
  229.             private static Random s_random = new Random();
  230.  
  231.             public static int GenerateRandom(int maxValue, int minValue = 0)
  232.             {
  233.                 return s_random.Next(minValue, maxValue + 1);
  234.             }
  235.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement