Advertisement
VodVas

Аквариум

Dec 10th, 2023 (edited)
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.38 KB | Software | 0 0
  1. using System.Net.Cache;
  2.  
  3. namespace Аквариум
  4. {
  5.     internal class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Aquarium aquarium = new Aquarium();
  10.  
  11.             aquarium.Work();
  12.         }
  13.     }
  14.  
  15.     class Aquarium
  16.     {
  17.         private List<Fish> _fishes = new List<Fish>();
  18.  
  19.         public Aquarium()
  20.         {
  21.             _fishes.Add(new Fish("Гектар", 3, 6));
  22.             _fishes.Add(new Fish("Клаус", 2, 7));
  23.             _fishes.Add(new Fish("Йодо", 1, 4));
  24.         }
  25.  
  26.         public void Work()
  27.         {
  28.             const string AddFishMenu = "1";
  29.             const string RemoveFishMenu = "2";
  30.  
  31.             while (_fishes.Count > 0)
  32.             {
  33.                 Console.ForegroundColor = ConsoleColor.DarkYellow;
  34.                 Console.WriteLine("Рыбки в аквариуме:\n");
  35.                 Console.ForegroundColor = ConsoleColor.White;
  36.  
  37.                 ShowFishes();
  38.  
  39.                 Console.WriteLine($"\nДобавить рыбку - {AddFishMenu}\nДостать рыбку - {RemoveFishMenu}\n");
  40.  
  41.                 string userInput = Console.ReadLine();
  42.  
  43.                 switch (userInput)
  44.                 {
  45.                     case AddFishMenu:
  46.                         AddFish();
  47.                         break;
  48.  
  49.                     case RemoveFishMenu:
  50.                         RemoveFish();
  51.                         break;
  52.  
  53.                     default:
  54.                         Console.ForegroundColor = ConsoleColor.Red;
  55.                         Console.WriteLine("Нет такой команды");
  56.                         Console.ForegroundColor = ConsoleColor.White;
  57.                         break;
  58.                 }
  59.  
  60.                 Console.WriteLine("\n=====Прошел 1 день====\n");
  61.  
  62.                 SkipTime();
  63.                 RemoveDeadFish();
  64.  
  65.                 Console.Clear();
  66.             }
  67.  
  68.             Console.WriteLine("\nАквариум пуст");
  69.         }
  70.  
  71.         private void SkipTime()
  72.         {
  73.             for (int i = 0; i < _fishes.Count; i++)
  74.             {
  75.                 _fishes[i].SkipTime();
  76.             }
  77.         }
  78.  
  79.         private void AddFish()
  80.         {
  81.             int quantityFish = 5;
  82.  
  83.             Console.Write($"Аквариум вмещает максимум {quantityFish} рыб\nСейчас плавает {_fishes.Count} шт");
  84.  
  85.             if (_fishes.Count == quantityFish)
  86.             {
  87.                 Console.WriteLine("\nАквариум заполнен\n");
  88.             }
  89.             else
  90.             {
  91.                 Console.Write("\nВведите имя рыбки: ");
  92.  
  93.                 string name = Console.ReadLine();
  94.  
  95.                 Console.Write("Введите возраст рыбы: ");
  96.  
  97.                 int age = Utility.ReturnInputNumber();
  98.  
  99.                 Console.Write("Введите максимальный возраст рыбы: ");
  100.  
  101.                 int maxAge = Utility.ReturnInputNumber();
  102.  
  103.                 while (maxAge <= age)
  104.                 {
  105.                     Console.WriteLine("\nМаксимальный возраст не может быть меньше или равен текущему\n");
  106.                     Console.Write("Введите максимальный возраст рыбы: ");
  107.  
  108.                     maxAge = Utility.ReturnInputNumber();
  109.                 }
  110.  
  111.                 _fishes.Add(new Fish(name, age, maxAge));
  112.  
  113.                 Console.WriteLine($"\nДобавлена рыбка с именем {name} возрастом {age} и максимальным возрастом {maxAge}\n");
  114.             }
  115.         }
  116.  
  117.         private void RemoveFish()
  118.         {
  119.             Console.Write("Введите имя рыбки, которую хотите достать: ");
  120.  
  121.             string removeName = Console.ReadLine();
  122.  
  123.             for (int i = 0; i < _fishes.Count; i++)
  124.             {
  125.                 if (removeName.ToLower() == _fishes[i].Name.ToLower())
  126.                 {
  127.                     Console.WriteLine($"\nРыбка {_fishes[i].Name} удалена из аквариума\n");
  128.  
  129.                     _fishes.RemoveAt(i);
  130.  
  131.                     return;
  132.                 }
  133.             }
  134.  
  135.             Console.ForegroundColor = ConsoleColor.Red;
  136.             Console.WriteLine("\nРыбы с таким именем нет в аквариуме\n");
  137.             Console.ForegroundColor = ConsoleColor.White;
  138.  
  139.         }
  140.  
  141.         private void PlaySadBeep()
  142.         {
  143.             Console.Beep(293, 200);
  144.             Console.Beep(246, 200);
  145.             Console.Beep(246, 200);
  146.             Console.Beep(246, 200);
  147.             Console.Beep(220, 200);
  148.             Console.Beep(220, 200);
  149.             Console.Beep(220, 200);
  150.         }
  151.  
  152.         private void RemoveDeadFish()
  153.         {
  154.             for (int i = _fishes.Count - 1; i >= 0; i--)
  155.             {
  156.                 if (_fishes[i].Age == _fishes[i].MaxAge)
  157.                 {
  158.                     Console.WriteLine($"\nРыбка {_fishes[i].Name} умерла :(\n");
  159.  
  160.                     _fishes.RemoveAt(i);
  161.  
  162.                     PlaySadBeep();
  163.                 }
  164.             }
  165.         }
  166.  
  167.         private void ShowFishes()
  168.         {
  169.             foreach (var fish in _fishes)
  170.             {
  171.                 fish.ShowFish();
  172.             }
  173.         }
  174.     }
  175.  
  176.     class Fish
  177.     {
  178.         public Fish(string name, int age, int maxAge)
  179.         {
  180.             Name = name;
  181.             Age = age;
  182.             MaxAge = maxAge;
  183.         }
  184.  
  185.         public string Name { get; private set; }
  186.         public int Age { get; private set; }
  187.         public int MaxAge { get; private set; }
  188.  
  189.         public void ShowFish()
  190.         {
  191.             Console.WriteLine($"Имя - {Name} | Возраст - {Age} | Максимальный возраст {MaxAge}");
  192.         }
  193.  
  194.         public void SkipTime()
  195.         {
  196.             Age++;
  197.         }
  198.  
  199.         public bool IsDead()
  200.         {
  201.             return Age == MaxAge;
  202.         }
  203.     }
  204.  
  205.     class Utility
  206.     {
  207.         public static int ReturnInputNumber()
  208.         {
  209.             int number;
  210.  
  211.             while (int.TryParse(Console.ReadLine(), out number) == false)
  212.             {
  213.                 Console.WriteLine("Введено не число, попробуйте еще раз: ");
  214.             }
  215.  
  216.             return number;
  217.         }
  218.     }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement