Advertisement
Rodunskiy

Untitled

May 14th, 2025
543
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.14 KB | None | 0 0
  1. namespace CSLight
  2. {
  3.     class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             Database database = new Database();
  8.             database.Work();
  9.  
  10.  
  11.         }
  12.     }
  13.  
  14.     class Database
  15.     {
  16.         private const string AddPlayerCommand = "1";
  17.         private const string BanPlayerCommand = "2";
  18.         private const string UnbanPlayerCommand = "3";
  19.         private const string DeletePlayerCommand = "4";
  20.         private const string PrintAllPlayersCommand = "5";
  21.         private const string ExitProgramCommand = "6";
  22.  
  23.         private List<Player> _players = new List<Player>();
  24.         private int _nextIdPlayer = 1;
  25.  
  26.         public void Work()
  27.         {
  28.             bool isWorking = true;
  29.  
  30.             while (isWorking)
  31.             {
  32.                 ShowMenu();
  33.                 string userInput = Console.ReadLine();
  34.  
  35.                 switch (userInput)
  36.                 {
  37.                     case AddPlayerCommand:
  38.                         AddPlayer();
  39.                         break;
  40.  
  41.                     case BanPlayerCommand:
  42.                         BanPlayer();
  43.                         break;
  44.  
  45.                     case UnbanPlayerCommand:
  46.                         UnbanPlayer();
  47.                         break;
  48.  
  49.                     case DeletePlayerCommand:
  50.                         DeletePlayer();
  51.                         break;
  52.  
  53.                     case PrintAllPlayersCommand:
  54.                         PrintAllPlayers();
  55.                         break;
  56.  
  57.                     case ExitProgramCommand:
  58.                         isWorking = false;
  59.                         break;
  60.  
  61.                     default:
  62.                         Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
  63.                         break;
  64.                 }
  65.             }
  66.         }
  67.  
  68.         private void ShowMenu()
  69.         {
  70.             Console.WriteLine($"{AddPlayerCommand})Добавить игрока.\n{BanPlayerCommand})Забанить игрока.\n{UnbanPlayerCommand})Разбанить игрока.\n{DeletePlayerCommand})Удалить игрока." +
  71.                               $"\n{PrintAllPlayersCommand})Вывести список всех игроков.\n{ExitProgramCommand})Выход из программы.");
  72.         }
  73.  
  74.         private void AddPlayer()
  75.         {
  76.             Console.WriteLine("Введите ник игрока:");
  77.             string nickname = Console.ReadLine();
  78.  
  79.             Console.WriteLine("Введите уровень:");
  80.             int level = ReadInt("Уровень должен быть числом. Попробуйте еще раз:");
  81.  
  82.             Player player = new Player(_nextIdPlayer, nickname, level);
  83.             _players.Add(player);
  84.             _nextIdPlayer++;
  85.  
  86.             Console.WriteLine($"Игрок {nickname} добавлен с ID {player.Id}");
  87.         }
  88.  
  89.         private void BanPlayer()
  90.         {
  91.             int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
  92.  
  93.             if (TryGetPlayer(id, out Player player))
  94.             {
  95.                 player.Ban();
  96.                 Console.WriteLine($"Игрок {player.Nickname} (ID: {id}) забанен.");
  97.             }
  98.         }
  99.  
  100.         private void UnbanPlayer()
  101.         {
  102.             int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
  103.  
  104.             if (TryGetPlayer(id, out Player player))
  105.             {
  106.                 player.Unban();
  107.                 Console.WriteLine($"Игрок {player.Nickname} (ID: {id}) разбанен.");
  108.             }
  109.         }
  110.  
  111.         private void DeletePlayer()
  112.         {
  113.             int id = ReadInt("ID игрока должен быть числом. Попробуйте еще раз:");
  114.  
  115.             Player playerToRemove = _players.FirstOrDefault(p => p.Id == id);
  116.  
  117.             if (playerToRemove != null)
  118.             {
  119.                 _players.Remove(playerToRemove);
  120.                 Console.WriteLine($"Игрок {playerToRemove.Nickname} (ID: {id}) удален.");
  121.             }
  122.             else
  123.             {
  124.                 Console.WriteLine($"Игрок с ID {id} не найден.");
  125.             }
  126.         }
  127.  
  128.         private void PrintAllPlayers()
  129.         {
  130.             if (_players.Count == 0)
  131.             {
  132.                 Console.WriteLine("В базе нет игроков.");
  133.             }
  134.             else
  135.             {
  136.                 Console.WriteLine("Список игроков:");
  137.                 foreach (var player in _players)
  138.                 {
  139.                     player.ShowInfo();
  140.                 }
  141.             }
  142.         }
  143.  
  144.         private bool TryGetPlayer(int id, out Player player)
  145.         {
  146.             player = _players.FirstOrDefault(p => p.Id == id);
  147.  
  148.             if (player != null)
  149.             {
  150.                 return true;
  151.             }
  152.  
  153.             Console.WriteLine($"Игрок с ID {id} не найден.");
  154.             return false;
  155.         }
  156.  
  157.         private int ReadInt(string errorMessage)
  158.         {
  159.             int result;
  160.             while (!int.TryParse(Console.ReadLine(), out result))
  161.             {
  162.                 Console.WriteLine(errorMessage);
  163.             }
  164.             return result;
  165.         }
  166.     }
  167.  
  168.     class Player
  169.     {
  170.         public int Id { get; }
  171.         public string Nickname { get; }
  172.         public int Level { get; }
  173.         public bool IsBanned { get; private set; }
  174.  
  175.         public Player(int id, string nickname, int level, bool isBanned = false)
  176.         {
  177.             Id = id;
  178.             Nickname = nickname;
  179.             Level = level;
  180.             IsBanned = isBanned;
  181.         }
  182.  
  183.         public void Ban()
  184.         {
  185.             IsBanned = true;
  186.         }
  187.  
  188.         public void Unban()
  189.         {
  190.             IsBanned = false;
  191.         }
  192.  
  193.         public void ShowInfo()
  194.         {
  195.             string status = IsBanned ? "Забанен" : "Активен";
  196.             Console.WriteLine($"ID: {Id} | Ник: {Nickname} | Уровень: {Level} | Статус: {status}");
  197.         }
  198.     }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement