Advertisement
Rodunskiy

Untitled

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