Advertisement
Rodunskiy

Untitled

May 14th, 2025
714
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.79 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 List<Player> _players = new List<Player>();
  15.         private int _nextIdPlayer = 1;
  16.  
  17.         public void Work()
  18.         {
  19.             bool isWorking = true;
  20.  
  21.             while (isWorking)
  22.             {
  23.                 ShowMenu();
  24.                 string userInput = Console.ReadLine();
  25.  
  26.                 switch (userInput)
  27.                 {
  28.                     case "1":
  29.                         AddPlayer();
  30.                         break;
  31.  
  32.                     case "2":
  33.                         BanPlayer();
  34.                         break;
  35.  
  36.                     case "3":
  37.                         UnbanPlayer();
  38.                         break;
  39.  
  40.                     case "4":
  41.                         DeletePlayer();
  42.                         break;
  43.  
  44.                     case "5":
  45.                         PrintAllPlayers();
  46.                         break;
  47.  
  48.                     case "6":
  49.                         isWorking = false;
  50.                         break;
  51.  
  52.                     default:
  53.                         Console.WriteLine("Неверный выбор. Попробуйте еще раз.");
  54.                         break;
  55.                 }
  56.             }
  57.         }
  58.  
  59.         private void ShowMenu()
  60.         {
  61.             string AddPlayerCommand = "1";
  62.             string BanPlayerCommand = "2";
  63.             string UnbanPlayerCommand = "3";
  64.             string DeletePlayerCommand = "4";
  65.             string PrintAllPlayersCommand = "5";
  66.             string ExitProgramCommand = "6";
  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.             if (TryGetPlayer(id, out Player player))
  114.             {
  115.                 _players.Remove(player);
  116.                 Console.WriteLine($"Игрок {player.Nickname} (ID: {id}) удален.");
  117.             }
  118.         }
  119.  
  120.         private void PrintAllPlayers()
  121.         {
  122.             if (_players.Count == 0)
  123.             {
  124.                 Console.WriteLine("В базе нет игроков.");
  125.             }
  126.             else
  127.             {
  128.                 Console.WriteLine("Список игроков:");
  129.                 foreach (var player in _players)
  130.                 {
  131.                     player.ShowInfo();
  132.                 }
  133.             }
  134.         }
  135.  
  136.         private bool TryGetPlayer(int id, out Player player)
  137.         {
  138.             player = _players.FirstOrDefault(p => p.Id == id);
  139.  
  140.             if (player != null)
  141.             {
  142.                 return true;
  143.             }
  144.  
  145.             Console.WriteLine($"Игрок с ID {id} не найден.");
  146.  
  147.             return false;
  148.         }
  149.  
  150.         private int ReadInt(string errorMessage)
  151.         {
  152.             int result;
  153.             while (!int.TryParse(Console.ReadLine(), out result))
  154.             {
  155.                 Console.WriteLine(errorMessage);
  156.             }
  157.  
  158.             return result;
  159.         }
  160.     }
  161.  
  162.     class Player
  163.     {
  164.         public Player(int id, string nickname, int level, bool isBanned = false)
  165.         {
  166.             Id = id;
  167.             Nickname = nickname;
  168.             Level = level;
  169.             IsBanned = isBanned;
  170.         }
  171.  
  172.         public int Id { get; }
  173.         public string Nickname { get; }
  174.         public int Level { get; }
  175.         public bool IsBanned { get; private set; }
  176.  
  177.         public void Ban()
  178.         {
  179.             IsBanned = true;
  180.         }
  181.  
  182.         public void Unban()
  183.         {
  184.             IsBanned = false;
  185.         }
  186.  
  187.         public void ShowInfo()
  188.         {
  189.             string status = IsBanned ? "Забанен" : "Активен";
  190.             Console.WriteLine($"ID: {Id} | Ник: {Nickname} | Уровень: {Level} | Статус: {status}");
  191.         }
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement