Advertisement
illiden

Zoo

Feb 27th, 2020
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.12 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 Zoo
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Test test = new Test();
  14.             test.Start();
  15.         }
  16.     }
  17.  
  18.     class Test
  19.     {
  20.         Zoo zoo = new Zoo();
  21.         private Random _random = new Random();
  22.         private string[] _phrases = { "Чего пялишься?", "Я итак с обезьяной сижу", "Еще один..." };
  23.         public void Start()
  24.         {
  25.             zoo.CreateAviary();
  26.             zoo.CreateTigrInAviary(0, "Людоед", false);
  27.             zoo.CreateSnakeInAviary(0, "Людоглот", true);
  28.             zoo.CreateSnakeInAviary(0, "Живоротень", true);
  29.  
  30.             zoo.CreateAviary();
  31.             zoo.CreateAnimalInAviary(1, "Завтрак", false, "Пи-пи-пи","Мышь");
  32.             zoo.CreateAnimalInAviary(1, "Обед", true, "Пи-пи-пи", "Мышь");
  33.             zoo.CreateAnimalInAviary(1, "Ужин", false, "Пи-пи-пи", "Мышь");
  34.             zoo.CreateSnakeInAviary(1, "Голодавка", false);
  35.  
  36.             zoo.CreateAviary();
  37.             zoo.CreateTigrInAviary(2, "Белоклык", true);
  38.             zoo.CreateTigrInAviary(2, "Пушистик", false);
  39.  
  40.             zoo.CreateAviary();
  41.             zoo.CreateAnimalInAviary(3, "Додо", false, _phrases[_random.Next(0, _phrases.Length)], "Попугай");
  42.             zoo.CreateAnimalInAviary(3, "Силли", false, "У-у-у-у", "Обезьяна");
  43.  
  44.             zoo.ShowMenu();
  45.         }
  46.     }
  47.  
  48.  
  49.     class Zoo
  50.     {
  51.         private Aviary[] _aviaries = new Aviary[0];
  52.         private static int _number;
  53.  
  54.         public Zoo()
  55.         {
  56.             _number = 1;
  57.         }
  58.  
  59.         public void CreateAviary()
  60.         {
  61.             Aviary[] newAviaries = new Aviary[_aviaries.Length + 1];
  62.             for (int i = 0; i < _aviaries.Length; i++)
  63.             {
  64.                 newAviaries[i] = _aviaries[i];
  65.             }
  66.             newAviaries[newAviaries.Length - 1] = new Aviary(_number++);
  67.             _aviaries = newAviaries;
  68.         }
  69.  
  70.         public void CreateAnimalInAviary(int index, string name, bool sex, string voice, string kind)
  71.         {
  72.             _aviaries[index].CreateAnimal(name, sex, voice, kind);
  73.         }
  74.  
  75.         public void CreateTigrInAviary(int index, string name, bool sex)
  76.         {
  77.             _aviaries[index].CreateTigr(name, sex);
  78.         }
  79.  
  80.         public void CreateSnakeInAviary(int index, string name, bool sex)
  81.         {
  82.             _aviaries[index].CreateSnake(name, sex);
  83.         }
  84.  
  85.         public void ShowMenu()
  86.         {
  87.             bool exit = false;
  88.             while(!exit)
  89.             {
  90.                 Console.WriteLine("Добро пожаловать в Зоопарк!\n\nВ нашем зоопарке " + _aviaries.Length + " вольеров. Выберите, какой вы хотите посмотреть: \n");
  91.                 for (int i = 0; i < _aviaries.Length; i++)
  92.                 {
  93.                     Console.WriteLine((i + 1) + ". посмотреть вольер №" + _aviaries[i].GetIndex());
  94.                     Console.WriteLine();
  95.                 }
  96.                 Console.WriteLine((_aviaries.Length + 1) + ". Выход из зоопарка");
  97.                 int input = Convert.ToInt32(Console.ReadLine());
  98.                 if (input == _aviaries.Length + 1)
  99.                 {
  100.                     exit = true;
  101.                 }
  102.                 if (input >= 0 && input < _aviaries.Length + 1)
  103.                 {
  104.                     Console.Clear();
  105.                     _aviaries[input - 1].ShowMenu();
  106.                 }
  107.                 Console.Clear();
  108.             }
  109.         }
  110.     }
  111.  
  112.     class Aviary
  113.     {
  114.         private Animal[] _animals = new Animal[0];
  115.         private AviaryMenu _menu;
  116.         private int _number;
  117.  
  118.         public Aviary(int number)
  119.         {
  120.             _menu = new AviaryMenu(this);
  121.             _number = number;
  122.         }
  123.  
  124.         public int GetIndex()
  125.         {
  126.             return _number;
  127.         }
  128.  
  129.         public void CreateAnimal(string name, bool sex, string voice, string kind)
  130.         {
  131.             Animal[] newAnimals = new Animal[_animals.Length + 1];
  132.             for (int i = 0; i < _animals.Length; i++)
  133.             {
  134.                 newAnimals[i] = _animals[i];
  135.             }
  136.             newAnimals[newAnimals.Length - 1] = new Animal(name, sex, voice, kind);
  137.             _animals = newAnimals;
  138.             _menu.AddOtherAnimal();
  139.         }
  140.  
  141.         public void CreateTigr(string name, bool sex)
  142.         {
  143.             Animal[] newAnimals = new Animal[_animals.Length + 1];
  144.             for (int i = 0; i < _animals.Length; i++)
  145.             {
  146.                 newAnimals[i] = _animals[i];
  147.             }
  148.             newAnimals[newAnimals.Length - 1] = new Tigr(name, sex);
  149.             _animals = newAnimals;
  150.             _menu.AddTigr();
  151.         }
  152.  
  153.         public void CreateSnake(string name, bool sex)
  154.         {
  155.             Animal[] newAnimals = new Animal[_animals.Length + 1];
  156.             for (int i = 0; i < _animals.Length; i++)
  157.             {
  158.                 newAnimals[i] = _animals[i];
  159.             }
  160.             newAnimals[newAnimals.Length - 1] = new Snake(name, sex);
  161.             _animals = newAnimals;
  162.             _menu.AddSnake();
  163.         }
  164.  
  165.         public void ShowAllAnimals()
  166.         {
  167.             foreach (Animal animal in _animals)
  168.             {
  169.                 animal.OutputCharacteristics();
  170.                 Console.WriteLine();
  171.             }
  172.         }
  173.  
  174.         public void ShowMenu()
  175.         {
  176.             _menu.ShowMenu();
  177.         }
  178.     }
  179.  
  180.     class AviaryMenu
  181.     {
  182.         private int _countTigres = 0;
  183.         private int _countSnakes = 0;
  184.         private int _countOtherAnimals = 0;
  185.         private Aviary _aviary;
  186.  
  187.         public AviaryMenu(Aviary aviary)
  188.         {
  189.             _aviary = aviary;
  190.         }
  191.  
  192.         public void AddOtherAnimal()
  193.         {
  194.             _countOtherAnimals++;
  195.         }
  196.        
  197.         public void AddTigr()
  198.         {
  199.             _countTigres++;
  200.         }
  201.        
  202.         public void AddSnake()
  203.         {
  204.             _countSnakes++;
  205.         }
  206.  
  207.         public void ShowAviary()
  208.         {
  209.             Console.Write("\nВ вольере №" + _aviary.GetIndex() + " находится: \n" +
  210.                             _countTigres + " тигров\n" +
  211.                             _countSnakes + " змей\n" +
  212.                             _countOtherAnimals + " других животных\n\n");
  213.         }
  214.  
  215.         public void ShowMenu()
  216.         {
  217.             bool exit = false;
  218.             while(!exit)
  219.             {
  220.                 Console.WriteLine("Вольер с животными №" + _aviary.GetIndex() + " Выберите действие: \n\n" +
  221.                     "1. Просмотреть животных\n\n" +
  222.                     "2. Подойти поближе\n\n" +
  223.                     "3. Выход\n\n");
  224.                 int input = Convert.ToInt32(Console.ReadLine());
  225.                 switch (input)
  226.                 {
  227.                     case 1:
  228.                         ShowAviary();
  229.                         break;
  230.                     case 2:
  231.                         Console.WriteLine();
  232.                         _aviary.ShowAllAnimals();
  233.                         break;
  234.                     case 3:
  235.                         Console.WriteLine("Нажмите любую клавишу и вы вйдете из вольера");
  236.                         exit = true;
  237.                         break;
  238.                     default:
  239.                         Console.WriteLine("Я не знаю такой команды! Повторите еще");
  240.                         break;
  241.                 }
  242.                 Console.ReadKey();
  243.                 Console.Clear();
  244.             }
  245.         }
  246.     }
  247.  
  248.     class Animal
  249.     {
  250.         protected string _name;
  251.         protected bool _sex;
  252.         protected string _voice;
  253.         protected string _kind;
  254.  
  255.         public Animal(string name, bool sex, string voice, string kind)
  256.         {
  257.             _name = name;
  258.             _sex = sex;
  259.             _voice = voice;
  260.             _kind = kind;
  261.         }
  262.  
  263.         public void GetName()
  264.         {
  265.             Console.Write("Имя: " + _name);
  266.         }
  267.  
  268.         public void GetSex()
  269.         {
  270.             string sex;
  271.             if (_sex == false)
  272.             {
  273.                 sex = "мужской";
  274.             }
  275.             else
  276.             {
  277.                 sex = "женский";
  278.             }
  279.             Console.Write("Пол: " + sex);
  280.         }
  281.  
  282.         public void GetVoice()
  283.         {
  284.             Console.Write("Звук: " + _voice);
  285.         }
  286.  
  287.         public void GetKind()
  288.         {
  289.             Console.Write("Вид: " + _kind);
  290.         }
  291.  
  292.         public virtual void OutputCharacteristics()
  293.         {
  294.             GetName();
  295.             Console.WriteLine();
  296.             GetKind();
  297.             Console.WriteLine();
  298.             GetVoice();
  299.             Console.WriteLine();
  300.             GetSex();
  301.             Console.WriteLine();
  302.         }
  303.     }
  304.  
  305.     class Tigr : Animal
  306.     {
  307.         private string[] _types = { "Белый", "Красный" };
  308.         private string _type;
  309.         private Random random = new Random();
  310.         public Tigr(string name, bool sex, string voice = "Рааа", string kind = "Тигр") : base(name, sex, voice, kind)
  311.         {
  312.             _name = name;
  313.             _sex = sex;
  314.             _type = _types[random.Next(0, _types.Length)];
  315.         }
  316.  
  317.         public void GetTypes()
  318.         {
  319.             Console.Write("Тип: " + _type);
  320.         }
  321.  
  322.         public override void OutputCharacteristics()
  323.         {
  324.             GetName();
  325.             Console.WriteLine();
  326.             GetKind();
  327.             Console.WriteLine();
  328.             GetTypes();
  329.             Console.WriteLine();
  330.             GetVoice();
  331.             Console.WriteLine();
  332.             GetSex();
  333.             Console.WriteLine();
  334.         }
  335.     }
  336.  
  337.     class Snake : Animal
  338.     {
  339.         private string[] _types = { "Кобра", "Белая", "Уж", "Василиск", "Питон", "Удав" };
  340.         private string _type;
  341.         private Random random = new Random();
  342.         public Snake(string name, bool sex, string voice = "Тссссс", string kind = "Змея") : base(name, sex, voice, kind)
  343.         {
  344.             _name = name;
  345.             _sex = sex;
  346.             _type = _types[random.Next(0, _types.Length)];
  347.         }
  348.  
  349.         public void GetTypes()
  350.         {
  351.             Console.Write("Тип: " + _type);
  352.         }
  353.  
  354.         public override void OutputCharacteristics()
  355.         {
  356.             GetName();
  357.             Console.WriteLine();
  358.             GetKind();
  359.             Console.WriteLine();
  360.             GetTypes();
  361.             Console.WriteLine();
  362.             GetVoice();
  363.             Console.WriteLine();
  364.             GetSex();
  365.             Console.WriteLine();
  366.         }
  367.     }
  368. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement