illiden

Zoov2

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