Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Media;
- internal class Program
- {
- static void Main(string[] args)
- {
- Aquarium aquarium = new Aquarium();
- aquarium.Live();
- }
- }
- class Aquarium
- {
- private List<Fish> _fish = new List<Fish>();
- public Aquarium()
- {
- Fill();
- }
- public void Live()
- {
- Console.WriteLine($"Добро пожаловать в игру под названием \"Аквариум. Часть первая. Жизнь\"");
- while (FinishGame()) { }
- }
- private bool FinishGame()
- {
- const int PasesTime = 1;
- const int AddNewFish = 4;
- const int RemoveFish = 5;
- const int Exit = 9;
- bool isWork = true;
- Console.WriteLine("Сейчас у Вас в аквариуме есть следующие рыбки:");
- ShowInfo();
- Console.WriteLine($"\nВведите команду: \n{PasesTime} - Ничего не делать, пройдёт время, " +
- $"\n{AddNewFish} - Добавить рыбку, \n{RemoveFish} - Достать рыбку,\n{Exit} - Выход из игры.");
- switch (ReadInt())
- {
- case PasesTime:
- Grow();
- break;
- case AddNewFish:
- this.AddNewFish();
- break;
- case RemoveFish:
- this.RemoveFish();
- break;
- case Exit:
- isWork = false;
- break;
- default:
- Console.WriteLine("\aТак команды нет.");
- break;
- }
- Console.WriteLine("\nНажмите любую клавишу для продолжения.");
- Console.ReadKey();
- Console.Clear();
- return isWork;
- }
- private void Grow()
- {
- for (int i = 0; i < _fish.Count; i++)
- {
- _fish[i].Grow();
- if (_fish[i].IsAlive == false)
- {
- _fish.Remove(_fish[i]);
- i--;
- }
- }
- }
- private void AddNewFish()
- {
- Console.WriteLine("Введите имя новой рыбки: ");
- _fish.Add(new Fish(Console.ReadLine()));
- }
- private int ReadInt()
- {
- bool isCorrectInput = false;
- int result = 0;
- while (isCorrectInput == false)
- {
- isCorrectInput = int.TryParse(Console.ReadLine(), out result);
- if (result <= 0)
- {
- isCorrectInput = false;
- Console.WriteLine("\aВведите положительное число!");
- }
- }
- return result;
- }
- private Fish GetFish()
- {
- Fish fishFoundet = null;
- bool isFoundIndexFish = false;
- if (_fish.Count == 0)
- {
- isFoundIndexFish = true;
- Console.WriteLine("Увы, аквариум пуст...");
- }
- while (isFoundIndexFish == false)
- {
- Console.Write("\nВведите индекс: ");
- int index = ReadInt();
- for (int i = 0; i < _fish.Count; i++)
- {
- if (index == _fish.Count)
- {
- isFoundIndexFish = true;
- fishFoundet = _fish[i];
- }
- }
- if (isFoundIndexFish == false)
- {
- Console.Write("\a\nВведено не верное значение.");
- }
- }
- return fishFoundet;
- }
- private void RemoveFish()
- {
- Fish fish = GetFish();
- if (fish != null)
- {
- _fish.Remove(fish);
- }
- }
- private void Fill()
- {
- _fish.Add(new Fish("Красная", 1, 6));
- _fish.Add(new Fish("Зелёная"));
- _fish.Add(new Fish("Мелкая", 0, 2));
- _fish.Add(new Fish("Долгоживущая", 2, 10));
- }
- private void ShowInfo()
- {
- for (int i = 0; i < _fish.Count; i++)
- {
- Console.Write($"\n[{i + 1}] - ");
- _fish[i].ShowInfo();
- }
- }
- }
- class Fish
- {
- private string _name;
- private int _lifetime;
- private int _age;
- public Fish(string name, int age, int lifetime)
- {
- _name = name;
- _age = age;
- _lifetime = lifetime;
- }
- public Fish(string name)
- {
- _name = name;
- _age = 0;
- _lifetime = 5;
- }
- public bool IsAlive
- {
- get
- {
- return _age <= _lifetime;
- }
- }
- public void ShowInfo()
- {
- Console.Write($"Имя рыбки - {_name}, возраст рыбки - {_age} / {_lifetime}");
- }
- public void Grow()
- {
- _age++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement