Advertisement
IvanOseledko

Homework40

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