Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace aquarius
- {
- class Program
- {
- private const int CommandAddFish = 1;
- private const int CommandRemoveFish = 2;
- private const int CommandWait = 3;
- private const int CommandShowInfo = 4;
- private const int CommandExit = 5;
- static void Main(string[] args)
- {
- Aquarium aquarium = new Aquarium();
- bool isRunning = true;
- while (isRunning)
- {
- Console.Clear();
- Console.WriteLine($"{CommandAddFish} Добавить рыбу");
- Console.WriteLine($"{CommandRemoveFish} Извлечь рыбу");
- Console.WriteLine($"{CommandWait} Подождать");
- Console.WriteLine($"{CommandShowInfo} Показать информацию");
- Console.WriteLine($"{CommandExit} Выйти из программы");
- int userCommand = UserUtils.GetNumberFromUser();
- switch (userCommand)
- {
- case CommandAddFish:
- aquarium.AddFish();
- break;
- case CommandRemoveFish:
- aquarium.RemoveFish();
- break;
- case CommandWait:
- aquarium.Wait();
- break;
- case CommandShowInfo:
- aquarium.ShowInfo();
- break;
- case CommandExit:
- isRunning = false;
- break;
- }
- }
- }
- }
- class UserUtils
- {
- public static int GetNumberFromUser()
- {
- string userInput;
- int userNumber;
- bool isNumber = false;
- do
- {
- userInput = Console.ReadLine();
- isNumber = int.TryParse(userInput, out userNumber);
- }
- while ((isNumber == false) || (userNumber < 0));
- return userNumber;
- }
- }
- class Aquarium
- {
- private List<Fish> _fish;
- public Aquarium()
- {
- _fish = new List<Fish>();
- }
- public void AddFish()
- {
- Console.WriteLine("Рыбку какого вида вы хотите добавить?");
- string species = Console.ReadLine();
- Console.WriteLine("Каков возраст рыбки?");
- int age = UserUtils.GetNumberFromUser();
- Fish newFish = new Fish(species, age);
- _fish.Add(newFish);
- }
- public void RemoveFish()
- {
- Console.WriteLine("Рыбку с каким индексом удалить?");
- int index = UserUtils.GetNumberFromUser() - 1;
- if (index < _fish.Count)
- _fish.RemoveAt(index);
- else
- Console.WriteLine("Рыбки с таким индексом в аквариуме нет");
- }
- public void Wait()
- {
- Console.WriteLine("Сколько времени подождать?");
- int waitingTime = UserUtils.GetNumberFromUser();
- foreach (Fish fish in _fish)
- fish.GrowOld(waitingTime);
- }
- public void ShowInfo()
- {
- for (int i = 0; i < _fish.Count; i++)
- Console.WriteLine($"{i + 1} {_fish[i].GetInfo()}");
- Console.ReadKey();
- }
- }
- class Fish
- {
- private int _maxLifetime = 100;
- private int _age;
- private int _maxAge;
- public Fish(string species, int age = 0)
- {
- Random random = new Random();
- _maxAge = random.Next(_maxLifetime);
- _age = 0;
- Species = species;
- GrowOld(age);
- }
- public bool IsAlive => _age <= _maxAge;
- public string Species { get; private set; }
- public void GrowOld(int time)
- {
- if (IsAlive == false)
- return;
- _age += time;
- }
- public string GetInfo()
- {
- string info;
- if (IsAlive)
- info = string.Format($"{Species}, возраст: {_age}");
- else
- info = string.Format($"{Species}, неживая");
- return info;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement