Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Net.Cache;
- namespace Аквариум
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Aquarium aquarium = new Aquarium();
- aquarium.Work();
- }
- }
- class Aquarium
- {
- private List<Fish> _fishes = new List<Fish>();
- public Aquarium()
- {
- _fishes.Add(new Fish("Гектар", 3, 6));
- _fishes.Add(new Fish("Клаус", 2, 7));
- _fishes.Add(new Fish("Йодо", 1, 4));
- }
- public void Work()
- {
- const string AddFishMenu = "1";
- const string RemoveFishMenu = "2";
- while (_fishes.Count > 0)
- {
- Console.ForegroundColor = ConsoleColor.DarkYellow;
- Console.WriteLine("Рыбки в аквариуме:\n");
- Console.ForegroundColor = ConsoleColor.White;
- ShowFishes();
- Console.WriteLine($"\nДобавить рыбку - {AddFishMenu}\nДостать рыбку - {RemoveFishMenu}\n");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case AddFishMenu:
- AddFish();
- break;
- case RemoveFishMenu:
- RemoveFish();
- break;
- default:
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("Нет такой команды");
- Console.ForegroundColor = ConsoleColor.White;
- break;
- }
- Console.WriteLine("\n=====Прошел 1 день====\n");
- SkipTime();
- RemoveDeadFish();
- Console.Clear();
- }
- Console.WriteLine("\nАквариум пуст");
- }
- private void SkipTime()
- {
- for (int i = 0; i < _fishes.Count; i++)
- {
- _fishes[i].SkipTime();
- }
- }
- private void AddFish()
- {
- int quantityFish = 5;
- Console.Write($"Аквариум вмещает максимум {quantityFish} рыб\nСейчас плавает {_fishes.Count} шт");
- if (_fishes.Count == quantityFish)
- {
- Console.WriteLine("\nАквариум заполнен\n");
- }
- else
- {
- Console.Write("\nВведите имя рыбки: ");
- string name = Console.ReadLine();
- Console.Write("Введите возраст рыбы: ");
- int age = Utility.ReturnInputNumber();
- Console.Write("Введите максимальный возраст рыбы: ");
- int maxAge = Utility.ReturnInputNumber();
- while (maxAge <= age)
- {
- Console.WriteLine("\nМаксимальный возраст не может быть меньше или равен текущему\n");
- Console.Write("Введите максимальный возраст рыбы: ");
- maxAge = Utility.ReturnInputNumber();
- }
- _fishes.Add(new Fish(name, age, maxAge));
- Console.WriteLine($"\nДобавлена рыбка с именем {name} возрастом {age} и максимальным возрастом {maxAge}\n");
- }
- }
- private void RemoveFish()
- {
- Console.Write("Введите имя рыбки, которую хотите достать: ");
- string removeName = Console.ReadLine();
- for (int i = 0; i < _fishes.Count; i++)
- {
- if (removeName.ToLower() == _fishes[i].Name.ToLower())
- {
- Console.WriteLine($"\nРыбка {_fishes[i].Name} удалена из аквариума\n");
- _fishes.RemoveAt(i);
- return;
- }
- }
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\nРыбы с таким именем нет в аквариуме\n");
- Console.ForegroundColor = ConsoleColor.White;
- }
- private void PlaySadBeep()
- {
- Console.Beep(293, 200);
- Console.Beep(246, 200);
- Console.Beep(246, 200);
- Console.Beep(246, 200);
- Console.Beep(220, 200);
- Console.Beep(220, 200);
- Console.Beep(220, 200);
- }
- private void RemoveDeadFish()
- {
- for (int i = _fishes.Count - 1; i >= 0; i--)
- {
- if (_fishes[i].Age == _fishes[i].MaxAge)
- {
- Console.WriteLine($"\nРыбка {_fishes[i].Name} умерла :(\n");
- _fishes.RemoveAt(i);
- PlaySadBeep();
- }
- }
- }
- private void ShowFishes()
- {
- foreach (var fish in _fishes)
- {
- fish.ShowFish();
- }
- }
- }
- class Fish
- {
- public Fish(string name, int age, int maxAge)
- {
- Name = name;
- Age = age;
- MaxAge = maxAge;
- }
- public string Name { get; private set; }
- public int Age { get; private set; }
- public int MaxAge { get; private set; }
- public void ShowFish()
- {
- Console.WriteLine($"Имя - {Name} | Возраст - {Age} | Максимальный возраст {MaxAge}");
- }
- public void SkipTime()
- {
- Age++;
- }
- public bool IsDead()
- {
- return Age == MaxAge;
- }
- }
- class Utility
- {
- public static int ReturnInputNumber()
- {
- int number;
- while (int.TryParse(Console.ReadLine(), out number) == false)
- {
- Console.WriteLine("Введено не число, попробуйте еще раз: ");
- }
- return number;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement