Advertisement
ranee

Untitled

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