Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace Ijunior
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Game game = new Game();
- game.Work();
- }
- }
- class Game
- {
- private Zoo _zoo = new Zoo();
- public void Work()
- {
- const string CommandChooseCage = "1";
- const string CommandExit = "2";
- bool isWork = true;
- while (isWork)
- {
- Console.Write($"{CommandChooseCage} - посмотреть на вольер" +
- $"\n{CommandExit} - выйти" +
- $"\nВведите номер: ");
- switch (Console.ReadLine())
- {
- case CommandChooseCage:
- ChooseCage();
- break;
- case CommandExit:
- isWork = false;
- break;
- default:
- Console.WriteLine("Некорректный ввод");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- private void ChooseCage()
- {
- Console.WriteLine($"Доступно {_zoo.CagesCount} вольеров");
- Console.Write("Выберите номер: ");
- if (int.TryParse(Console.ReadLine(), out int index))
- {
- if (index > 0 && index <= _zoo.CagesCount)
- _zoo.ShowCage(index - 1);
- else
- Console.WriteLine("Такого вольера нет");
- }
- else
- {
- Console.WriteLine("Некорректный ввод");
- }
- }
- }
- class Zoo
- {
- private List<Cage> _cages;
- public Zoo()
- {
- _cages = new List<Cage>();
- CreateCages();
- }
- public int CagesCount => _cages.Count;
- public void ShowCage(int index)
- {
- _cages[index].ShowInfo();
- }
- private void CreateCages()
- {
- int defaultCountCages = 5;
- for (int i = 0; i < defaultCountCages; i++)
- {
- _cages.Add(new Cage());
- FillCage(_cages[i]);
- }
- }
- private void FillCage(Cage cage)
- {
- int minAnimals = 1;
- int maxAnimals = 5;
- int countAnimals = Utils.GetRandomNumber(minAnimals, maxAnimals);
- Dictionary<string, string> availableAnimals = new Dictionary<string, string>()
- {
- {"кот", "мяу" } ,
- {"собака", "гав" } ,
- {"лягушка", "ква" } ,
- {"корова", "му" } ,
- {"утка", "кря" },
- {"свинья", "хрю" },
- {"овца", "бе" },
- {"осел", "иа" }
- };
- string[] availableSex = new string[] { "самка", "самец" };
- string name = availableAnimals.Keys.ElementAt(Utils.GetRandomNumber(0, availableAnimals.Count - 1));
- string sound = availableAnimals[name];
- for (int i = 0; i < countAnimals; i++)
- {
- string sex = availableSex[Utils.GetRandomNumber(0, availableSex.Length)];
- cage.AddAnimal(name, sound, sex);
- }
- }
- }
- class Cage
- {
- List<Animal> _animals = new List<Animal>();
- public void AddAnimal(string name, string sound, string sex)
- {
- _animals.Add(new Animal(name, sound, sex));
- }
- public void ShowInfo()
- {
- foreach (Animal animal in _animals)
- {
- animal.ShowInfo();
- }
- }
- }
- class Animal
- {
- private string _name;
- private string _sound;
- private string _sex;
- public Animal(string name, string sound, string sex)
- {
- _name = name;
- _sound = sound;
- _sex = sex;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"{_sex} {_name} говорит {_sound}");
- }
- }
- class Utils
- {
- private static Random s_random = new Random();
- public static int GetRandomNumber(int minValue, int maxValue)
- {
- return s_random.Next(minValue, maxValue);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment