Advertisement
Rodunskiy

Untitled

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