Dr_Max_Experience

Task 3

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