Advertisement
vovanhik_24

#40

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