Advertisement
SaNik74

player database

Jun 28th, 2024 (edited)
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.92 KB | None | 0 0
  1. namespace player_database
  2. {
  3.     internal class Program
  4.     {
  5.         static void Main(string[] args)
  6.         {
  7.             Database database = new Database();
  8.             database.Work();
  9.         }
  10.     }
  11.  
  12.     class Player
  13.     {
  14.         public Player(int id, string name, int level, bool isBanned)
  15.         {
  16.             Id = id;
  17.             Name = name;
  18.             Level = level;
  19.             IsBanned = isBanned;
  20.         }
  21.  
  22.         public int Id { get; private set; }
  23.         public string Name { get; private set; }
  24.         public int Level { get; private set; }
  25.         public bool IsBanned { get; private set; }
  26.  
  27.         public void Block()
  28.         {
  29.             IsBanned = true;
  30.         }
  31.  
  32.         public void Unblock()
  33.         {
  34.             IsBanned = false;
  35.         }
  36.     }
  37.  
  38.     class Database
  39.     {
  40.         private List<Player> _players = new List<Player>();
  41.         private int _lastId = 1;
  42.  
  43.         public void Work()
  44.         {
  45.             const string AddPlayersCommand = "1";
  46.             const string BlockCommand = "2";
  47.             const string UnblockCommand = "3";
  48.             const string DeletePlayerCommand = "4";
  49.             const string EndProgramCommadn = "5";
  50.  
  51.             bool isWorking = true;
  52.  
  53.             while (isWorking)
  54.             {
  55.                 DisplayPlayersInformation();
  56.  
  57.                 Console.Write($"База данных игроков.\n\n\n" +
  58.                 $"Команды для работы с базой данных:\n\n" +
  59.                 $"{AddPlayersCommand} - если вы хотите добавть игроков.\n" +
  60.                 $"{BlockCommand} - если вы хотите заблокировать игрока.\n" +
  61.                 $"{UnblockCommand} - если вы хотите разблокировать игрока.\n" +
  62.                 $"{DeletePlayerCommand} - если вы хотите удалить игрока.\n" +
  63.                 $"{EndProgramCommadn} - если вы хотите выйти из программы.\n\n\n" +
  64.                 $"Ввод: ");
  65.  
  66.                 string userInput = Console.ReadLine();
  67.  
  68.                 switch (userInput)
  69.                 {
  70.                     case AddPlayersCommand:
  71.                         AddPlayer();
  72.                         break;
  73.  
  74.                     case BlockCommand:
  75.                         BlockPlayer();
  76.                         break;
  77.  
  78.                     case UnblockCommand:
  79.                         UnblockPlayer();
  80.                         break;
  81.  
  82.                     case DeletePlayerCommand:
  83.                         DeletePlayer();
  84.                         break;
  85.  
  86.                     case EndProgramCommadn:
  87.                         isWorking = false;
  88.                         break;
  89.  
  90.                     default:
  91.                         Console.WriteLine("Некорректная команда.");
  92.                         break;
  93.                 }
  94.  
  95.                 Console.ReadKey();
  96.                 Console.Clear();
  97.             }
  98.         }
  99.  
  100.         private void AddPlayer()
  101.         {
  102.             int id = _lastId++;
  103.             int levelStarting = 1;
  104.             bool isBanned = false;
  105.  
  106.             Console.WriteLine("Введите имя персонажа: ");
  107.             string name = Console.ReadLine();
  108.  
  109.             Player user = new Player(id, name, levelStarting, isBanned);
  110.  
  111.             _players.Add(user);
  112.         }
  113.  
  114.         private void DeletePlayer()
  115.         {
  116.             if (TryGetPlayer(out Player player))
  117.             {
  118.                 _players.Remove(player);
  119.             }
  120.         }
  121.  
  122.         private void BlockPlayer()
  123.         {
  124.             if (TryGetPlayer(out Player player))
  125.             {
  126.                 player.Block();
  127.             }
  128.         }
  129.  
  130.         private void UnblockPlayer()
  131.         {
  132.             if (TryGetPlayer(out Player player))
  133.             {
  134.                 player.Unblock();
  135.             }
  136.         }
  137.  
  138.         private bool TryGetPlayer(out Player player)
  139.         {
  140.             int idRequired;
  141.  
  142.             player = null;
  143.  
  144.             Console.WriteLine("Введите id игрока: ");
  145.  
  146.             idRequired = ReadInt();
  147.  
  148.             foreach (Player user in _players)
  149.             {
  150.                 if (user.Id == idRequired)
  151.                 {
  152.                     player = user;
  153.                     return true;
  154.                 }
  155.             }
  156.  
  157.             Console.WriteLine("Игрока с таким ID не обнаружено.");
  158.             Console.ReadKey();
  159.  
  160.             return false;
  161.         }
  162.  
  163.         private int ReadInt()
  164.         {
  165.             int numberUserInput = 0;
  166.             bool isWorking = true;
  167.  
  168.             while (isWorking)
  169.             {
  170.                 string userInput = Console.ReadLine();
  171.                 bool isNumber = int.TryParse(userInput, out numberUserInput);
  172.  
  173.                 if (isNumber == false)
  174.                 {
  175.                     Console.Write("Введите число:");
  176.                 }
  177.                 else
  178.                 {
  179.                     isWorking = false;
  180.                 }
  181.             }
  182.             return numberUserInput;
  183.         }
  184.  
  185.         private void DisplayPlayersInformation()
  186.         {
  187.             for (int i = 0; i < _players.Count; i++)
  188.             {
  189.                 int numberOfPlayer = i + 1;
  190.  
  191.                 Console.BackgroundColor = ConsoleColor.DarkCyan;
  192.                 Console.ForegroundColor = ConsoleColor.Red;
  193.  
  194.                 Console.WriteLine($"Игрок - {numberOfPlayer}\n" +
  195.                     $"Имя игрока - {_players[i].Name}\n" +
  196.                     $"Уровнень игрока - {_players[i].Level}\n" +
  197.                     $"Статус блокировки игрока - {_players[i].IsBanned}\n" +
  198.                     $"Индивидуальный номер игрока - {_players[i].Id}\n\n");
  199.             }
  200.  
  201.             Console.ResetColor();
  202.         }
  203.     }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement