Advertisement
IGRODELOFF

Task49.2

Aug 3rd, 2022 (edited)
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Task49
  8. {
  9.     internal class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Zoo zoo = new Zoo();
  14.             zoo.Work();
  15.         }
  16.     }
  17.  
  18.     class Zoo
  19.     {
  20.         private Random _random = new Random();
  21.         private List<Aviary> _aviaries = new List<Aviary>();
  22.  
  23.         public void Work()
  24.         {
  25.             AddAviary(4);
  26.             bool isExit = false;
  27.            
  28.             string menu =
  29.                 "Введи номер одного из вальеров или цифру 0 (выход) если хочешь уйти: ";
  30.  
  31.             while (isExit == false)
  32.             {
  33.                 Console.WriteLine($"Доступно вольеров - {_aviaries.Count}");
  34.  
  35.                 int userInput = GetInt(menu);
  36.  
  37.                 if (userInput > 0 && userInput <= _aviaries.Count)
  38.                     ShowAviary(userInput);
  39.                 else if (userInput == 0)
  40.                     isExit = true;
  41.                 else
  42.                     Console.WriteLine("Такого вальера или команды не существует.");
  43.  
  44.                 Console.WriteLine("Чтобы отправиться назад нажмите любую кнопку. ");
  45.                 Console.ReadKey();
  46.                 Console.Clear();
  47.             }
  48.         }
  49.  
  50.         private void AddAviary(int numberAviary)
  51.         {
  52.             for (int i = 0; i < numberAviary; i++)
  53.             {
  54.                 _aviaries.Add(new Aviary(_random));
  55.             }
  56.         }
  57.  
  58.         private void ShowAviary(int index)
  59.         {
  60.             _aviaries[index-1].ShowAnimal();
  61.         }
  62.  
  63.         private int GetInt(string requestInputNumber)
  64.         {
  65.             string errorConversion = "Ошибка,вы вели не цифры! Попробуйте снова.";
  66.             string userInput;
  67.  
  68.             bool resultConverted = false;
  69.  
  70.             int number = 0;
  71.  
  72.             while (resultConverted == false)
  73.             {
  74.                 Console.Write(requestInputNumber);
  75.                 userInput = Console.ReadLine();
  76.  
  77.                 resultConverted = int.TryParse(userInput, out int numberConvert);
  78.  
  79.                 if (resultConverted != true)
  80.                     Console.WriteLine(errorConversion);
  81.                 else
  82.                     number = numberConvert;
  83.             }
  84.             return number;
  85.         }
  86.     }
  87.  
  88.     class Aviary
  89.     {
  90.         private Dictionary<int, Animal> _animals = new Dictionary<int, Animal>();
  91.         private List<Animal> _listAnimals = new List<Animal>();
  92.  
  93.         public Aviary(Random random)
  94.         {
  95.             AddAnimals();
  96.  
  97.             int minCountAnimals = 2;
  98.             int maxCountAnimals = 25;
  99.             int index = random.Next(0, _listAnimals.Count-1);
  100.             int countAnimals = random.Next(minCountAnimals, maxCountAnimals);
  101.  
  102.             AddAviary(index, countAnimals, random);
  103.         }
  104.  
  105.         public void ShowAnimal()
  106.         {
  107.             Console.WriteLine($"Кол-во животных в вольере: {_animals.Count}");
  108.  
  109.             for (int i = 0; i < _animals.Count; i++)
  110.             {
  111.                 Console.WriteLine($"{_animals[i].Name}. Пол - {_animals[i].Gender}. Звук который издаёт - {_animals[i].Sound}");
  112.             }
  113.         }
  114.  
  115.         private void AddAviary(int index, int countAnimals, Random random)
  116.         {
  117.             for (int i = 0; i < countAnimals; i++)
  118.             {
  119.                 _animals.Add(i, new Animal(GetAnimalName(index), GetAnimalSound(index), GetGenderAnimal(random)));
  120.             }
  121.         }
  122.  
  123.         private string GetAnimalName(int animalIndex)
  124.         {
  125.             return _listAnimals[animalIndex].Name;
  126.         }
  127.  
  128.         private string GetAnimalSound(int animalIndex)
  129.         {
  130.             return _listAnimals[animalIndex].Sound;
  131.         }
  132.  
  133.         private string GetGenderAnimal(Random random)
  134.         {
  135.             int Gender = random.Next(0, 100);
  136.  
  137.             if (Gender < 50)
  138.                 return "Самец";
  139.             else
  140.                 return "Самка";
  141.         }
  142.  
  143.         private void AddAnimals()
  144.         {
  145.             _listAnimals.Add(new Animal("Попугай(-и)", "АРРР", "null"));
  146.             _listAnimals.Add(new Animal("Пингвин(-ы)", "Уваа", "null"));
  147.             _listAnimals.Add(new Animal("Медведь(-и)", "РЫЫЫВ", "null"));
  148.             _listAnimals.Add(new Animal("Обезьяны", "Уооааа", "null"));
  149.         }
  150.     }
  151.  
  152.     class Animal
  153.     {
  154.         public string Name { get; private set; }
  155.         public string Gender { get; set; }
  156.         public string Sound { get; private set; }
  157.  
  158.         public Animal(string name, string sound, string gender)
  159.         {
  160.             Name = name;
  161.             Gender = gender;
  162.             Sound = sound;
  163.         }
  164.     }
  165. }
  166.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement