Advertisement
vovanhik_24

#49.2

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