using System; using System.Collections.Generic; using System.Drawing; using System.Reflection; internal class Program { static void Main(string[] args) { const string CommandAddPlayer = "1"; const string CommandBanPlayerById = "2"; const string CommandUnbanPlayerById = "3"; const string CommandDeletePlayerById = "4"; const string CommandExit = "Exit"; bool isRun = true; DataBase dataBase = new DataBase(); while (isRun) { Console.Clear(); dataBase.ShowInfo(); Console.WriteLine($"{CommandAddPlayer} - Добавить игрока.\n" + $"{CommandBanPlayerById} - Заблокировать игрока по ID.\n" + $"{CommandUnbanPlayerById} - Разблокировать игрока по ID.\n" + $"{CommandDeletePlayerById} - Удалить игрока по ID.\n" + $"{CommandExit} - Завершить программу."); switch (Console.ReadLine()) { case CommandAddPlayer: dataBase.AddPlayer(); break; case CommandBanPlayerById: dataBase.BanPlayer(); break; case CommandUnbanPlayerById: dataBase.UnbanPlayer(); break; case CommandDeletePlayerById: dataBase.DeletePlayer(); break; case CommandExit: isRun = false; break; default: Console.WriteLine("Ошибка ввода."); break; } Console.ReadKey(); } Console.WriteLine("Программа завершена."); Console.ReadKey(); } } class Player { static private int _identifications; private bool _isBaned; public Player(string name) { Name = name; Level = 1; Identification = ++_identifications; _isBaned = false; } public string Name { get; private set; } public int Level { get; private set; } public int Identification { get; private set; } public void Block() { _isBaned = true; } public void Unblock() { _isBaned = false; } public void ShowInfo() { Console.WriteLine($"{Identification}. Игрок: {Name}, уровень - {Level}. " + (_isBaned ? "Заблокирован." : "Активен.")); } } class DataBase { private List _players; public DataBase() { _players = new List(); } public void ShowInfo() { if (_players.Count > 0) { foreach (Player player in _players) { player.ShowInfo(); } } else { Console.WriteLine("Нет игроков в базе."); } Console.WriteLine(new String('-', 35)); } public void AddPlayer() { Console.Write("Введи имя игрока: "); string name = Console.ReadLine(); _players.Add(new Player(name)); Console.WriteLine("Игрок добален."); } public void BanPlayer() { if(TryGetPlayer(out Player player)) { player.Block(); } } public void UnbanPlayer() { if (TryGetPlayer(out Player player)) { player.Unblock(); } } public void DeletePlayer() { if(TryGetPlayer(out Player player)) { _players.Remove(player); } } private bool TryGetPlayer(out Player foundPlayer) { Console.Write("Введите номер игрока: "); int id = ReadInt(Console.ReadLine()); foreach (Player player in _players) { if (player.Identification == id) { foundPlayer = player; return true; } } Console.WriteLine("Нет игрока с таким номером."); foundPlayer = null; return false; } private int ReadInt(string input) { int result; int.TryParse(input, out result); return result; } }