Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Zoo
- {
- class Program
- {
- static void Main(string[] args)
- {
- Test test = new Test();
- test.Start();
- }
- }
- class Test
- {
- Zoo zoo = new Zoo();
- private Random _random = new Random();
- private string[] _phrases = { "Чего пялишься?", "Я итак с обезьяной сижу", "Еще один..." };
- public void Start()
- {
- zoo.CreateAviary();
- zoo.CreateTigrInAviary(0, "Людоед", false);
- zoo.CreateSnakeInAviary(0, "Людоглот", true);
- zoo.CreateSnakeInAviary(0, "Живоротень", true);
- zoo.CreateAviary();
- zoo.CreateAnimalInAviary(1, "Завтрак", false, "Пи-пи-пи","Мышь");
- zoo.CreateAnimalInAviary(1, "Обед", true, "Пи-пи-пи", "Мышь");
- zoo.CreateAnimalInAviary(1, "Ужин", false, "Пи-пи-пи", "Мышь");
- zoo.CreateSnakeInAviary(1, "Голодавка", false);
- zoo.CreateAviary();
- zoo.CreateTigrInAviary(2, "Белоклык", true);
- zoo.CreateTigrInAviary(2, "Пушистик", false);
- zoo.CreateAviary();
- zoo.CreateAnimalInAviary(3, "Додо", false, _phrases[_random.Next(0, _phrases.Length)], "Попугай");
- zoo.CreateAnimalInAviary(3, "Силли", false, "У-у-у-у", "Обезьяна");
- zoo.ShowMenu();
- }
- }
- class Zoo
- {
- private Aviary[] _aviaries = new Aviary[0];
- private static int _number;
- public Zoo()
- {
- _number = 1;
- }
- public void CreateAviary()
- {
- Aviary[] newAviaries = new Aviary[_aviaries.Length + 1];
- for (int i = 0; i < _aviaries.Length; i++)
- {
- newAviaries[i] = _aviaries[i];
- }
- newAviaries[newAviaries.Length - 1] = new Aviary(_number++);
- _aviaries = newAviaries;
- }
- public void CreateAnimalInAviary(int index, string name, bool sex, string voice, string kind)
- {
- _aviaries[index].CreateAnimal(name, sex, voice, kind);
- }
- public void CreateTigrInAviary(int index, string name, bool sex)
- {
- _aviaries[index].CreateTigr(name, sex);
- }
- public void CreateSnakeInAviary(int index, string name, bool sex)
- {
- _aviaries[index].CreateSnake(name, sex);
- }
- public void ShowMenu()
- {
- bool exit = false;
- while(!exit)
- {
- Console.WriteLine("Добро пожаловать в Зоопарк!\n\nВ нашем зоопарке " + _aviaries.Length + " вольеров. Выберите, какой вы хотите посмотреть: \n");
- for (int i = 0; i < _aviaries.Length; i++)
- {
- Console.WriteLine((i + 1) + ". посмотреть вольер №" + _aviaries[i].GetIndex());
- Console.WriteLine();
- }
- Console.WriteLine((_aviaries.Length + 1) + ". Выход из зоопарка");
- int input = Convert.ToInt32(Console.ReadLine());
- if (input == _aviaries.Length + 1)
- {
- exit = true;
- }
- if (input >= 0 && input < _aviaries.Length + 1)
- {
- Console.Clear();
- _aviaries[input - 1].ShowMenu();
- }
- Console.Clear();
- }
- }
- }
- class Aviary
- {
- private Animal[] _animals = new Animal[0];
- private AviaryMenu _menu;
- private int _number;
- public Aviary(int number)
- {
- _menu = new AviaryMenu(this);
- _number = number;
- }
- public int GetIndex()
- {
- return _number;
- }
- public void CreateAnimal(string name, bool sex, string voice, string kind)
- {
- Animal[] newAnimals = new Animal[_animals.Length + 1];
- for (int i = 0; i < _animals.Length; i++)
- {
- newAnimals[i] = _animals[i];
- }
- newAnimals[newAnimals.Length - 1] = new Animal(name, sex, voice, kind);
- _animals = newAnimals;
- _menu.AddOtherAnimal();
- }
- public void CreateTigr(string name, bool sex)
- {
- Animal[] newAnimals = new Animal[_animals.Length + 1];
- for (int i = 0; i < _animals.Length; i++)
- {
- newAnimals[i] = _animals[i];
- }
- newAnimals[newAnimals.Length - 1] = new Tigr(name, sex);
- _animals = newAnimals;
- _menu.AddTigr();
- }
- public void CreateSnake(string name, bool sex)
- {
- Animal[] newAnimals = new Animal[_animals.Length + 1];
- for (int i = 0; i < _animals.Length; i++)
- {
- newAnimals[i] = _animals[i];
- }
- newAnimals[newAnimals.Length - 1] = new Snake(name, sex);
- _animals = newAnimals;
- _menu.AddSnake();
- }
- public void ShowAllAnimals()
- {
- foreach (Animal animal in _animals)
- {
- animal.OutputCharacteristics();
- Console.WriteLine();
- }
- }
- public void ShowMenu()
- {
- _menu.ShowMenu();
- }
- }
- class AviaryMenu
- {
- private int _countTigres = 0;
- private int _countSnakes = 0;
- private int _countOtherAnimals = 0;
- private Aviary _aviary;
- public AviaryMenu(Aviary aviary)
- {
- _aviary = aviary;
- }
- public void AddOtherAnimal()
- {
- _countOtherAnimals++;
- }
- public void AddTigr()
- {
- _countTigres++;
- }
- public void AddSnake()
- {
- _countSnakes++;
- }
- public void ShowAviary()
- {
- Console.Write("\nВ вольере №" + _aviary.GetIndex() + " находится: \n" +
- _countTigres + " тигров\n" +
- _countSnakes + " змей\n" +
- _countOtherAnimals + " других животных\n\n");
- }
- public void ShowMenu()
- {
- bool exit = false;
- while(!exit)
- {
- Console.WriteLine("Вольер с животными №" + _aviary.GetIndex() + " Выберите действие: \n\n" +
- "1. Просмотреть животных\n\n" +
- "2. Подойти поближе\n\n" +
- "3. Выход\n\n");
- int input = Convert.ToInt32(Console.ReadLine());
- switch (input)
- {
- case 1:
- ShowAviary();
- break;
- case 2:
- Console.WriteLine();
- _aviary.ShowAllAnimals();
- break;
- case 3:
- Console.WriteLine("Нажмите любую клавишу и вы вйдете из вольера");
- exit = true;
- break;
- default:
- Console.WriteLine("Я не знаю такой команды! Повторите еще");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Animal
- {
- protected string _name;
- protected bool _sex;
- protected string _voice;
- protected string _kind;
- public Animal(string name, bool sex, string voice, string kind)
- {
- _name = name;
- _sex = sex;
- _voice = voice;
- _kind = kind;
- }
- public void GetName()
- {
- Console.Write("Имя: " + _name);
- }
- public void GetSex()
- {
- string sex;
- if (_sex == false)
- {
- sex = "мужской";
- }
- else
- {
- sex = "женский";
- }
- Console.Write("Пол: " + sex);
- }
- public void GetVoice()
- {
- Console.Write("Звук: " + _voice);
- }
- public void GetKind()
- {
- Console.Write("Вид: " + _kind);
- }
- public virtual void OutputCharacteristics()
- {
- GetName();
- Console.WriteLine();
- GetKind();
- Console.WriteLine();
- GetVoice();
- Console.WriteLine();
- GetSex();
- Console.WriteLine();
- }
- }
- class Tigr : Animal
- {
- private string[] _types = { "Белый", "Красный" };
- private string _type;
- private Random random = new Random();
- public Tigr(string name, bool sex, string voice = "Рааа", string kind = "Тигр") : base(name, sex, voice, kind)
- {
- _name = name;
- _sex = sex;
- _type = _types[random.Next(0, _types.Length)];
- }
- public void GetTypes()
- {
- Console.Write("Тип: " + _type);
- }
- public override void OutputCharacteristics()
- {
- GetName();
- Console.WriteLine();
- GetKind();
- Console.WriteLine();
- GetTypes();
- Console.WriteLine();
- GetVoice();
- Console.WriteLine();
- GetSex();
- Console.WriteLine();
- }
- }
- class Snake : Animal
- {
- private string[] _types = { "Кобра", "Белая", "Уж", "Василиск", "Питон", "Удав" };
- private string _type;
- private Random random = new Random();
- public Snake(string name, bool sex, string voice = "Тссссс", string kind = "Змея") : base(name, sex, voice, kind)
- {
- _name = name;
- _sex = sex;
- _type = _types[random.Next(0, _types.Length)];
- }
- public void GetTypes()
- {
- Console.Write("Тип: " + _type);
- }
- public override void OutputCharacteristics()
- {
- GetName();
- Console.WriteLine();
- GetKind();
- Console.WriteLine();
- GetTypes();
- Console.WriteLine();
- GetVoice();
- Console.WriteLine();
- GetSex();
- Console.WriteLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement