Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class Program
- {
- static void Main(string[] args)
- {
- Zoo zoo = new Zoo();
- bool isWorking = true;
- while (isWorking)
- {
- zoo.Work();
- }
- }
- }
- class Zoo
- {
- private List<Aviary> _aviarys = new List<Aviary>();
- public Zoo()
- {
- Fill();
- }
- public void Fill()
- {
- _aviarys.Add(new Aviary(new Monkey(), "Обезьяны", 1));
- _aviarys.Add(new Aviary(new Elephant(), "Слоны", 2));
- _aviarys.Add(new Aviary(new Giraffe(), "Жирафы", 3));
- _aviarys.Add(new Aviary(new Bird(), "Птицы", 4));
- }
- public void Work()
- {
- Console.WriteLine("Добро пожаловать в зоопарк! К какому вальеру вы хотели бы подойти?");
- ShowInfo();
- int userInput = Utils.ConvertToInt();
- Console.Clear();
- for (int i = 0; i < _aviarys.Count; i++)
- {
- _aviarys[i].ShowAviary();
- }
- foreach (var aviary in _aviarys)
- {
- aviary.ShowAviary();
- }
- Console.ReadKey();
- }
- public void ShowInfo()
- {
- foreach (var valliere in _aviarys)
- {
- Console.WriteLine($"{valliere.IdentificationNumber}){valliere.Name}");
- }
- }
- }
- class Aviary
- {
- private List<Animal> _animals = new List<Animal>();
- public Aviary(Animal animal, string name, int identificationNumber)
- {
- IdentificationNumber = identificationNumber;
- Name = name;
- AddToAviary(animal);
- }
- public int IdentificationNumber { get; private set; }
- public string Name { get; private set; }
- public void ShowAviary()
- {
- for (int i = 0; i < _animals.Count; i++)
- {
- Console.WriteLine($"{_animals[i].Name}|{_animals[i].Gender}|{_animals[i].Sound}");
- }
- Console.ReadKey();
- }
- public void AddToAviary(Animal animal)
- {
- int maxPlaces = 5;
- for (int i = 0; i < maxPlaces; i++)
- {
- _animals.Add(animal.Clone());
- }
- }
- }
- class Animal
- {
- private static Random _random = new Random();
- public Animal(string name, string sound)
- {
- Name = name;
- Sound = sound;
- Gender = GetRandomGender();
- }
- public string Name { get; private set; }
- public string Gender { get; private set; }
- public string Sound { get; private set; }
- public virtual Animal Clone()
- {
- return new Animal(Name, Sound);
- }
- private string GetRandomGender()
- {
- string[] genders = { "Женский", "Мужской" };
- int randomIndex = _random.Next(genders.Length);
- return genders[randomIndex];
- }
- }
- class Monkey : Animal
- {
- public override Animal Clone()
- {
- return new Monkey();
- }
- public Monkey() : base("Обезьяна", "Ухахахах уа") { }
- }
- class Elephant : Animal
- {
- public override Animal Clone()
- {
- return new Elephant();
- }
- public Elephant() : base("Слон", "Трубит") { }
- }
- class Giraffe : Animal
- {
- public override Animal Clone()
- {
- return new Giraffe();
- }
- public Giraffe() : base("Жираф", "Молчит") { }
- }
- class Bird : Animal
- {
- public override Animal Clone()
- {
- return new Bird();
- }
- public Bird() : base("Птица", "Курлык") { }
- }
- class Utils
- {
- public static int ConvertToInt()
- {
- int templateNumber;
- string userInput = string.Empty;
- while (int.TryParse(userInput, out templateNumber) == false)
- {
- userInput = Console.ReadLine();
- }
- return templateNumber;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement