IvanOseledko

Homework40

Jan 21st, 2025 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.40 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Homweork40
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Database database = new Database();
  10.             DatabaseOperations databaseOperations = new DatabaseOperations(database);
  11.  
  12.             databaseOperations.Work();
  13.         }
  14.     }
  15.  
  16.     class Database
  17.     {
  18.         private Dictionary<uint, Player> _players = new Dictionary<uint, Player>();
  19.            
  20.         public void AddPlayer(uint uniqueId, string nickname)
  21.         {
  22.             if (_players.ContainsKey(uniqueId) == false)
  23.             {
  24.                 _players.Add(uniqueId, new Player(uniqueId, nickname));
  25.                 Console.WriteLine($"\n\nНовый игрок успешно добавлен в базу данных!");
  26.             }
  27.             else
  28.             {                
  29.                 Console.WriteLine("\nИгрок с таким номером уже существует.");
  30.             }
  31.         }
  32.  
  33.         public void BanPlayer(uint uniqueId)
  34.         {
  35.             if (TryGetPlayer(uniqueId, out Player player) == true)
  36.             {
  37.                 player.Ban();
  38.                 Console.WriteLine($"\nИгрок с номером {uniqueId} забанен.");
  39.             }
  40.             else
  41.             {
  42.                 Console.WriteLine("\nИгрока с таким номером нет.");
  43.             }
  44.         }
  45.  
  46.         public void UnbanPlayer(uint uniqueId)
  47.         {
  48.             if (TryGetPlayer(uniqueId, out Player player) == true)
  49.             {
  50.                 player.Unban();
  51.                 Console.WriteLine($"\nИгрок с номером {uniqueId} успешно разбанен!");
  52.             }
  53.             else
  54.             {
  55.                 Console.WriteLine("\nИгрока с таким номером нет.");
  56.             }
  57.         }
  58.  
  59.         public void RemovePlayer(uint uniqueId)
  60.         {
  61.             if (_players.ContainsKey(uniqueId) == true)
  62.             {
  63.                 Console.WriteLine($"\nИгрок с номером {uniqueId} успешно удалён из базы данных.");
  64.                 _players.Remove(uniqueId);
  65.             }
  66.             else
  67.             {
  68.                 Console.WriteLine("\nИгрока с таким номером нет.");
  69.             }
  70.         }
  71.  
  72.         public void ShowAllPlayers()
  73.         {
  74.             foreach (var player in _players.Values)
  75.             {
  76.                 player.ShowInfo();
  77.             }
  78.         }
  79.  
  80.         private bool TryGetPlayer(uint uniqueId, out Player player)
  81.         {
  82.             return _players.TryGetValue(uniqueId, out player);
  83.         }
  84.     }
  85.  
  86.     class Player
  87.     {
  88.         public Player(uint uniqueId, string nickname)
  89.         {
  90.             UniqueId = uniqueId;
  91.             Nickname = nickname;
  92.             Level = 0;
  93.             IsBanned = false;
  94.         }
  95.  
  96.         public uint UniqueId { get; private set; }
  97.         public string Nickname { get; private set; }
  98.         public int Level { get; private set; }
  99.         public bool IsBanned { get; private set; }
  100.  
  101.         public void ShowInfo()
  102.         {
  103.             Console.WriteLine($"Уникальный номер: {UniqueId}, Никнейм: {Nickname}, Уровень: {Level}, Игрок забанен: {IsBanned}");
  104.         }
  105.  
  106.         public void Ban()
  107.         {
  108.             IsBanned = true;
  109.         }
  110.  
  111.         public void Unban()
  112.         {
  113.             IsBanned = false;
  114.         }
  115.     }
  116.  
  117.     class DatabaseOperations
  118.     {
  119.         private const string CommandUseShowAllPlayers = "1";
  120.         private const string CommandUseAddPlayer = "2";
  121.         private const string CommandUseBanPlayer = "3";
  122.         private const string CommandUseUnbanPlayer = "4";
  123.         private const string CommandUseRemovePlayer = "5";
  124.         private const string CommandUseExit = "6";
  125.  
  126.         private bool _isWorking = true;
  127.         private Database _database;
  128.  
  129.         public DatabaseOperations(Database database)
  130.         {
  131.             _database = database;
  132.         }
  133.        
  134.         public void AddPlayer()
  135.         {
  136.             Console.Write("Введите уникальный номер игрока: ");
  137.             uint userNumber = GetUserNumber();
  138.  
  139.             Console.Write("\nВведите ник игрока: ");
  140.             string userName = Console.ReadLine();
  141.  
  142.             _database.AddPlayer(userNumber, userName);
  143.         }
  144.  
  145.         public void BanPlayer()
  146.         {
  147.             Console.Write("Введите уникальный номер игрока, чтобы его забанить: ");
  148.             uint userNumber = GetUserNumber();
  149.  
  150.             _database.BanPlayer(userNumber);
  151.         }
  152.  
  153.         public void UnbanPlayer()
  154.         {
  155.             Console.Write("Введите уникальный номер игрока, чтобы его разбанить: ");
  156.             uint userNumber = GetUserNumber();
  157.  
  158.             _database.UnbanPlayer(userNumber);
  159.         }
  160.  
  161.         public void RemovePlayer()
  162.         {
  163.             Console.Write("Введите уникальный номер игрока, чтобы удалить его из базы данных: ");
  164.             uint userNumber = GetUserNumber();
  165.  
  166.             _database.RemovePlayer(userNumber);
  167.         }
  168.  
  169.         private uint GetUserNumber()
  170.         {
  171.             uint userNumber;
  172.  
  173.             while (!uint.TryParse(Console.ReadLine(), out userNumber))
  174.             {
  175.                 Console.Write("Неверный формат введенных данных. Введите целое число: ");
  176.             }
  177.  
  178.             return userNumber;
  179.         }
  180.  
  181.         public void Work()
  182.         {
  183.             while (_isWorking)
  184.             {
  185.                 Console.WriteLine($"{CommandUseShowAllPlayers} - Показать список всех игроков\n{CommandUseAddPlayer} - Добавить нового игрока\n{CommandUseBanPlayer} - Забанить игрока по номеру\n{CommandUseUnbanPlayer} - Рзабанить игрока по номеру\n{CommandUseRemovePlayer} - Удалить игрока из базы данных\n{CommandUseExit} - Выйти из программы");
  186.  
  187.                 Console.Write("\n\nВведите нужную операцию: ");
  188.                 string userInput = Console.ReadLine();
  189.  
  190.                 Console.Clear();
  191.  
  192.                 switch (userInput)
  193.                 {
  194.                     case CommandUseShowAllPlayers:
  195.                         _database.ShowAllPlayers();
  196.                         break;
  197.  
  198.                     case CommandUseAddPlayer:
  199.                         AddPlayer();
  200.                         break;
  201.  
  202.                     case CommandUseBanPlayer:
  203.                         BanPlayer();
  204.                         break;
  205.  
  206.                     case CommandUseUnbanPlayer:
  207.                         UnbanPlayer();
  208.                         break;
  209.  
  210.                     case CommandUseRemovePlayer:
  211.                         RemovePlayer();
  212.                         break;
  213.  
  214.                     case CommandUseExit:
  215.                         _isWorking = false;
  216.                         break;
  217.  
  218.                     default:
  219.                         Console.WriteLine("Такой операции нет.");
  220.                         break;
  221.                 }
  222.  
  223.                 Console.ReadKey();
  224.                 Console.Clear();
  225.             }
  226.         }
  227.     }
  228. }
Advertisement
Add Comment
Please, Sign In to add comment