Advertisement
AlexKayn

Aquarium

Jul 3rd, 2024 (edited)
650
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.80 KB | None | 0 0
  1. namespace Aquarium
  2. {
  3.     internal class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             Menu menu = new Menu();
  8.  
  9.             menu.Work();
  10.         }
  11.     }
  12.  
  13.     class Menu
  14.     {
  15.         public void Work()
  16.         {
  17.             const string AddedFish = "1";
  18.             const string RemovedFish = "2";
  19.             const string Exit = "3";
  20.  
  21.             Aquarium aquarium = new Aquarium();
  22.             bool isWork = true;
  23.  
  24.             Console.WriteLine("------------------Добро пожаловать в аквариум--------------------------");
  25.  
  26.             while (isWork)
  27.             {
  28.                 aquarium.Live();
  29.  
  30.                 Console.WriteLine("\n \n \n");
  31.                
  32.                 Console.WriteLine("Выберите действие:");
  33.                 Console.WriteLine($"{AddedFish}.Добавить новых рыбок");
  34.                 Console.WriteLine($"{RemovedFish}.Удалить рыбку");
  35.                 Console.WriteLine($"{Exit}.Выйти из симуляции");
  36.  
  37.                 Console.Write("> ");
  38.                 string userInput = Console.ReadLine();
  39.  
  40.                 switch (userInput)
  41.                 {
  42.                     case AddedFish:
  43.                         aquarium.AddFish();
  44.                         break;
  45.  
  46.                     case RemovedFish:
  47.                         aquarium.RemoveFish();
  48.                         break;
  49.  
  50.                     case Exit:
  51.                         isWork = false;
  52.                         break;
  53.                 }
  54.  
  55.                 Console.ReadKey();
  56.                 Console.Clear();
  57.             }
  58.         }
  59.     }
  60.  
  61.     class Aquarium
  62.     {
  63.         private readonly List<Fish> _fishes = new List<Fish>();
  64.  
  65.         public Aquarium()
  66.         {
  67.             _fishes.Add(new Fish("Карп", 20, ConsoleColor.Green));
  68.             _fishes.Add(new Fish("Окунь", 15, ConsoleColor.Cyan));
  69.         }
  70.  
  71.         public void Live()
  72.         {
  73.             Console.WriteLine("Жизнь рыб. АКВАРИУМ:");
  74.             Console.WriteLine("Рыбок в аквариуме " + _fishes.Count);
  75.  
  76.             for (int i = 0; i < _fishes.Count; i++)
  77.             {
  78.                 _fishes[i].Swim();
  79.  
  80.                 RemoveDeadFish(_fishes[i]);
  81.             }
  82.         }
  83.  
  84.         public void AddFish()
  85.         {
  86.             List<Fish> fishes = new List<Fish>()
  87.             {
  88.                 new Fish("Карп", 20, ConsoleColor.Green),
  89.                 new Fish("Окунь", 15, ConsoleColor.Cyan),
  90.                 new Fish("Рыба клоун", 25, ConsoleColor.Yellow),
  91.                 new Fish("Щука", 15, ConsoleColor.Blue),
  92.                 new Fish("Тунец", 15, ConsoleColor.DarkCyan),
  93.                 new Fish("Минтай", 15, ConsoleColor.DarkGray)
  94.             };
  95.  
  96.             for (int i = 0; i < fishes.Count; i++)
  97.             {
  98.                 _fishes.Add(fishes[UserUtils.GenerateRandomNumber(fishes.Count)]);
  99.  
  100.                 Console.WriteLine($"{fishes[i].Name} добавлена. Количество рыб {_fishes.Count}");
  101.             }
  102.         }
  103.  
  104.         public void RemoveFish()
  105.         {
  106.             Console.Write("Введите название рыбки из аквариума > ");
  107.  
  108.             string userInput = Console.ReadLine();
  109.  
  110.             for (int i = _fishes.Count - 1; i >= 0; i--)
  111.             {
  112.                 if (userInput == _fishes[i].Name)
  113.                 {
  114.                     _fishes.Remove(_fishes[i]);
  115.  
  116.                     Console.WriteLine($"{userInput} удалена. Количество рыб {_fishes.Count}");
  117.  
  118.                     break;
  119.                 }
  120.             }
  121.         }
  122.  
  123.         private void RemoveDeadFish(Fish fish)
  124.         {
  125.             if (fish.Age == fish.BeginLife)
  126.             {
  127.                 _fishes.Remove(fish);
  128.             }
  129.         }
  130.     }
  131.  
  132.     class Fish
  133.     {
  134.         public Fish(string name, int live, ConsoleColor color, int before = 0)
  135.         {
  136.             Name = name;
  137.             Age = live;
  138.             Color = color;
  139.         }
  140.  
  141.         public string Name { get; private set; }
  142.         public int Age { get; private set; }
  143.         public int BeginLife { get; private set; }
  144.         public ConsoleColor Color { get; private set; }
  145.  
  146.         public void Swim()
  147.         {
  148.             Console.ForegroundColor = Color;
  149.             Console.WriteLine($"Рыбка {Name} живет, дней ей: {BeginLife} / {Age}");
  150.  
  151.             BeginLife++;
  152.  
  153.             Console.ResetColor();
  154.             Console.ReadKey();
  155.         }
  156.     }
  157.  
  158.     class UserUtils
  159.     {
  160.         private static Random s_random = new Random();
  161.  
  162.         public static int GenerateRandomNumber(int maxValue)
  163.         {
  164.             return s_random.Next(maxValue);
  165.         }
  166.     }
  167. }
  168.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement