Advertisement
Rodunskiy

Untitled

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