SaNik74

database

May 21st, 2023 (edited)
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System.Reflection.Emit;
  2.  
  3. internal class Program
  4. {
  5.     static void Main(string[] args)
  6.     {
  7.         Database playerDdatabase = new Database();
  8.         playerDdatabase.WorkWithProgramm();
  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 int Level { get; private set; }
  24.     public string Name { 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 = 0;
  42.  
  43.     public void WorkWithProgramm()
  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.                     AddPlayers();
  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.                     Console.ReadKey();
  93.                     break;
  94.             }
  95.  
  96.             Console.Clear();
  97.         }
  98.     }
  99.  
  100.     private void AddPlayers()
  101.     {
  102.         int numberOfPlayers;
  103.  
  104.         Console.Write("Введите сколько игроков вы хотите создать: ");
  105.         numberOfPlayers = ReadInt();
  106.  
  107.         for (int i = numberOfPlayers; i > 0; --i)
  108.         {
  109.             bool isBanned = false;
  110.  
  111.             Console.Write("Введите имя персонажа: ");
  112.             string? name = Console.ReadLine();
  113.  
  114.             Player user = new Player(_lastId, name, 1, isBanned);
  115.             _players.Add(user);
  116.             _lastId++;
  117.         }
  118.     }
  119.  
  120.     private void DisplayPlayersInformation()
  121.     {
  122.         int numberOfPlayer = 1;
  123.  
  124.         foreach (Player user in _players)
  125.         {
  126.             Console.WriteLine($"Игрок - {numberOfPlayer}\n" +
  127.                 $"Имя игрока - {user.Name}\n" +
  128.                 $"Уровнень игрока - {user.Level}\n" +
  129.                 $"Статус игрока - {user.IsBanned}\n" +
  130.                 $"Индивидуальный номер игрока - {user.Id}\n\n");
  131.             numberOfPlayer++;
  132.         }
  133.     }
  134.  
  135.     private void BlockPlayer()
  136.     {
  137.         if (TryGetPlayer(out Player user) == true)
  138.         {
  139.             user.Block();
  140.         }
  141.     }
  142.  
  143.     private void UnblockPlayer()
  144.     {
  145.         if (TryGetPlayer(out Player user) == true)
  146.         {
  147.             user.Unblock();
  148.         }
  149.     }
  150.  
  151.     private void DeletePlayer()
  152.     {
  153.         if (TryGetPlayer(out Player user) == true)
  154.         {
  155.             _players.Remove(user);
  156.         }
  157.     }
  158.  
  159.     private bool TryGetPlayer(out Player player)
  160.     {
  161.         bool haveResult = false;
  162.         int playerId;
  163.         Player needPlayer = null;
  164.  
  165.         Console.Write("Введите id игрока: ");
  166.         playerId = ReadInt();
  167.  
  168.         foreach (Player user in _players)
  169.         {
  170.             if (playerId == user.Id)
  171.             {
  172.                 haveResult = true;
  173.                 needPlayer = user;
  174.             }
  175.         }
  176.  
  177.         if (haveResult == false)
  178.         {
  179.             Console.WriteLine("Игрока с таким id нет.");
  180.             Console.ReadKey();
  181.         }
  182.         player = needPlayer;
  183.         return haveResult;
  184.     }
  185.  
  186.     private int ReadInt()
  187.     {
  188.         int numberUserInput = 0;
  189.         bool isWorking = true;
  190.  
  191.         while (isWorking)
  192.         {
  193.             string? userInput = Console.ReadLine();
  194.             bool isNumber = int.TryParse(userInput, out numberUserInput);
  195.  
  196.             if (isNumber == false)
  197.             {
  198.                 Console.Write("Введите число:");
  199.             }
  200.             else
  201.             {
  202.                 isWorking = false;
  203.             }
  204.         }
  205.         return numberUserInput;
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment