Advertisement
NikaBang

Зоопарк 1.1

Aug 26th, 2022 (edited)
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. internal class Program
  5. {
  6.     //     Пользователь запускает приложение и перед ним находится меню, в котором он может выбрать, к какому вольеру подойти.
  7.     //     При приближении к вольеру, пользователю выводится информация о том, что это за вольер, сколько животных там обитает, их пол и какой звук издает животное.
  8.     //     Вольеров в зоопарке может быть много, в решении нужно создать минимум 4 вольера.
  9.     static void Main(string[] args)
  10.     {
  11.         new Zoo().ViewAviary();
  12.     }
  13.  
  14.     static class UserUtils
  15.     {
  16.         static public int ReadInt(string convert)
  17.         {
  18.             bool success = int.TryParse(convert, out int number);
  19.  
  20.             while (success == false)
  21.             {
  22.                 Console.Write("Ошибка конвертации, повторите ввод: ");
  23.                 success = int.TryParse(Console.ReadLine(), out number);
  24.             }
  25.             return number;
  26.         }
  27.     }
  28.  
  29.     class Animal
  30.     {
  31.         public string Name { get; }
  32.         public string Voice { get; }
  33.         public string Gender { get; }
  34.  
  35.         public Animal(string name, string voice, string gender)
  36.         {
  37.             Name = name;
  38.             Voice = voice;
  39.             Gender = gender;
  40.         }
  41.  
  42.         public void ShowInfo()
  43.         {
  44.             Console.WriteLine($"Тут живут: {Name} и они издают {Voice}!");
  45.         }
  46.     }
  47.  
  48.     class Aviary
  49.     {
  50.         static private Random _random = new Random();
  51.         private List<Animal> _animals;
  52.         public int CountFemale { get; private set; }
  53.         public int CountMale { get; private set; }
  54.  
  55.         public Aviary(string name, string voice)
  56.         {
  57.             _animals = new List<Animal>();
  58.             string female = "самка";
  59.             string male = "самец";
  60.             string gender = female;
  61.            
  62.  
  63.             for (int i = 0; i < CalculateRandom(_random); i++)
  64.             {
  65.                 _animals.Add(new Animal(name, voice, gender));
  66.  
  67.                 if (gender == female)
  68.                 {
  69.                     gender = male;
  70.                     CountFemale++;
  71.                 }
  72.                 else
  73.                 {
  74.                     gender = female;
  75.                     CountMale++;
  76.                 }
  77.             }
  78.         }
  79.  
  80.         public void ShowInfo()
  81.         {
  82.             _animals[0].ShowInfo();
  83.  
  84.             Console.WriteLine($"В вольере находится {CountFemale} самок и {CountMale} самцов.");
  85.         }
  86.  
  87.         private int CalculateRandom(Random random)
  88.         {
  89.             int minRandom = 1;
  90.             int maxRandom = 11;
  91.             return random.Next(minRandom, maxRandom);
  92.         }
  93.     }
  94.  
  95.     class Zoo
  96.     {
  97.         private List<Aviary> _aviaries;
  98.  
  99.         public Zoo()
  100.         {
  101.             _aviaries = new List<Aviary>();
  102.  
  103.             FillAviarys();
  104.         }
  105.  
  106.         public void ViewAviary()
  107.         {
  108.             bool inZoo = true;
  109.  
  110.             while (inZoo)
  111.             {
  112.                 Console.Write($"В зоопарке {_aviaries.Count} вольеров.\n" +
  113.                 $"Введи номер, к какому вольеру хочешь подойти или 0 что бы выйти: ");
  114.                 int userInput = UserUtils.ReadInt(Console.ReadLine());
  115.  
  116.                 if (userInput == 0)
  117.                 {
  118.                     inZoo = false;
  119.                 }
  120.                 else if (userInput <= _aviaries.Count && userInput > 0)
  121.                 {
  122.                     _aviaries[userInput - 1].ShowInfo();
  123.                     Console.ReadKey();
  124.                 }
  125.                 else
  126.                 {
  127.                     Console.WriteLine($"Всего {_aviaries.Count} вольеров.");
  128.                     Console.ReadKey();
  129.                 }
  130.  
  131.                 Console.Clear();
  132.             }
  133.  
  134.             Console.WriteLine("До новых встреч.");
  135.         }
  136.  
  137.         private void FillAviarys()
  138.         {
  139.             Aviary[] aviaries =
  140.             {
  141.                 new Aviary("Львы", "Громкое рычание"),
  142.                 new Aviary("Обезьяны", "У-У-у и-и-У"),
  143.                 new Aviary("Слоны", "Дудят"),
  144.                 new Aviary("Сурикаты", "Свистят"),
  145.                 new Aviary("Зебры", "Фыркают")
  146.             };
  147.  
  148.             _aviaries.AddRange(aviaries);
  149.         }
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement