Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace CSLight
- {
- class Program
- {
- static void Main(string[] args)
- {
- Database database = new Database();
- database.Work();
- }
- }
- class Database
- {
- private const string AddPlayerCommand = "1";
- private const string BanPlayerCommand = "2";
- private const string UnbanPlayerCommand = "3";
- private const string DeletePlayerCommand = "4";
- private const string PrintAllPlayersCommand = "5";
- private const string ExitProgramCommand = "6";
- private List<Player> _players = new List<Player>();
- private int _nextIdPlayer = 1;
- public void Work()
- {
- bool isWorking = true;
- while (isWorking)
- {
- ShowMenu();
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case AddPlayerCommand:
- AddPlayer();
- break;
- case BanPlayerCommand:
- BanPlayer();
- break;
- case UnbanPlayerCommand:
- UnbanPlayer();
- break;
- case DeletePlayerCommand:
- DeletePlayer();
- break;
- case PrintAllPlayersCommand:
- PrintAllPlayers();
- break;
- case ExitProgramCommand:
- isWorking = false;
- break;
- default:
- Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
- break;
- }
- }
- }
- private void ShowMenu()
- {
- Console.WriteLine($"{AddPlayerCommand})Добавить игрока.\n{BanPlayerCommand})Забанить игрока.\n{UnbanPlayerCommand})Разбанить игрока.\n{DeletePlayerCommand})Удалить игрока." +
- $"\n{PrintAllPlayersCommand})Вывести список всех игроков.\n{ExitProgramCommand})Выход из программы.");
- }
- private void AddPlayer()
- {
- Console.WriteLine("Введите ник игрока:");
- string nickname = Console.ReadLine();
- Console.WriteLine("Введите уровень:");
- int level = ReadInt("Уровень должен быть числом. Попробуйте еще раз:");
- Player player = new Player(_nextIdPlayer, nickname, level);
- _players.Add(player);
- _nextIdPlayer++;
- Console.WriteLine($"Игрок {nickname} добавлен с ID {player.Id}");
- }
- private void BanPlayer()
- {
- int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
- if (TryGetPlayer(id, out Player player))
- {
- player.Ban();
- Console.WriteLine($"Игрок {player.Nickname} (ID: {id}) забанен.");
- }
- }
- private void UnbanPlayer()
- {
- int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
- if (TryGetPlayer(id, out Player player))
- {
- player.Unban();
- Console.WriteLine($"Игрок {player.Nickname} (ID: {id}) разбанен.");
- }
- }
- private void DeletePlayer()
- {
- int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
- Player playerToRemove = _players.FirstOrDefault(p => p.Id == id);
- if (playerToRemove != null)
- {
- _players.Remove(playerToRemove);
- Console.WriteLine($"Игрок {playerToRemove.Nickname} (ID: {id}) удален.");
- }
- else
- {
- Console.WriteLine($"Игрок с ID {id} не найден.");
- }
- }
- private void PrintAllPlayers()
- {
- if (_players.Count == 0)
- {
- Console.WriteLine("В базе нет игроков.");
- }
- else
- {
- Console.WriteLine("Список игроков:");
- foreach (var player in _players)
- {
- player.ShowInfo();
- }
- }
- }
- private bool TryGetPlayer(int id, out Player player)
- {
- player = _players.FirstOrDefault(p => p.Id == id);
- if (player != null)
- {
- return true;
- }
- Console.WriteLine($"Игрок с ID {id} не найден.");
- return false;
- }
- private int ReadInt(string errorMessage)
- {
- int result;
- while (!int.TryParse(Console.ReadLine(), out result))
- {
- Console.WriteLine(errorMessage);
- }
- return result;
- }
- }
- class Player
- {
- public int Id { get; }
- public string Nickname { get; }
- public int Level { get; }
- public bool IsBanned { get; private set; }
- public Player(int id, string nickname, int level, bool isBanned = false)
- {
- Id = id;
- Nickname = nickname;
- Level = level;
- IsBanned = isBanned;
- }
- public void Ban()
- {
- IsBanned = true;
- }
- public void Unban()
- {
- IsBanned = false;
- }
- public void ShowInfo()
- {
- string status = IsBanned ? "Забанен" : "Активен";
- Console.WriteLine($"ID: {Id} | Ник: {Nickname} | Уровень: {Level} | Статус: {status}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement