RedFlys

Home work - data base players

Nov 12th, 2021
898
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.96 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 Home_Work
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Database database = new Database();
  14.             bool isWorking = true;
  15.             string userInput;
  16.  
  17.             while (isWorking)
  18.             {
  19.                 ShowMenu();
  20.                 userInput = Console.ReadLine();
  21.  
  22.                 switch (userInput)
  23.                 {
  24.                     case "1":
  25.                         database.AddPlayer();
  26.                         break;
  27.  
  28.                     case "2":
  29.                         database.ShowAllPlayers();
  30.                         break;
  31.  
  32.                     case "3":
  33.                         database.BanPlayer();
  34.                         break;
  35.  
  36.                     case "4":
  37.                         database.UnbanPlayer();
  38.                         break;
  39.  
  40.                     case "5":
  41.                         database.DeletePlayer();
  42.                         break;
  43.  
  44.                     default:
  45.                         Console.WriteLine("Такой команды нет.");
  46.                         break;
  47.                 }
  48.  
  49.                 Console.ReadKey();
  50.                 Console.Clear();
  51.             }
  52.         }
  53.  
  54.         static void ShowMenu()
  55.         {
  56.             Console.WriteLine("1. Добавить игрока.\n" +
  57.                 "2. Вывести всех игроков.\n" +
  58.                 "3. Забанить игрока.\n" +
  59.                 "4. Разбанить игрока. \n" +
  60.                 "5. Удалить игрока.\n" +
  61.                 "6. Выход.\n");
  62.             Console.Write("Введите номер команды: ");
  63.         }
  64.     }
  65.  
  66.     class Database
  67.     {
  68.         private List<Player> _players;
  69.  
  70.         public Database()
  71.         {
  72.             _players = new List<Player>();
  73.         }
  74.  
  75.         public void AddPlayer()
  76.         {
  77.             string nickname = "Player";
  78.  
  79.             Console.Write("Введите никнейм: ");
  80.             nickname = Console.ReadLine();
  81.  
  82.             _players.Add(new Player(nickname));
  83.         }
  84.  
  85.         public void ShowAllPlayers()
  86.         {
  87.             foreach (Player player in _players)
  88.             {
  89.                 player.ShowInfo();
  90.             }
  91.         }
  92.  
  93.         public void BanPlayer()
  94.         {
  95.             if(TryFindPlayer(out Player player))
  96.             {
  97.                 player.Ban();
  98.             }        
  99.         }
  100.  
  101.         public void UnbanPlayer()
  102.         {
  103.             if (TryFindPlayer(out Player player))
  104.             {
  105.                 player.Ban();
  106.             }
  107.         }
  108.  
  109.         public void DeletePlayer()
  110.         {
  111.             if (TryFindPlayer(out Player player))
  112.             {
  113.                 _players.Remove(player);
  114.             }
  115.         }
  116.  
  117.         private bool TryFindPlayer(out Player foundPlayer)
  118.         {
  119.             int number = GetNumber();
  120.  
  121.             foreach (Player player in _players)
  122.             {
  123.                 if (player.Id == number)
  124.                 {
  125.                     foundPlayer = player;
  126.                     return true;
  127.                 }
  128.             }
  129.  
  130.             Console.WriteLine("Игрок с таким ID отсутствует.");
  131.             foundPlayer = null;
  132.             return false;
  133.         }
  134.  
  135.         private int GetNumber()
  136.         {
  137.             bool isConvert = false;
  138.             int number = 0;
  139.  
  140.             string userInput;
  141.  
  142.             while (isConvert == false)
  143.             {
  144.                 Console.Write("Введите ID: ");
  145.                 userInput = Console.ReadLine();
  146.  
  147.                 isConvert = Int32.TryParse(userInput, out number);
  148.             }
  149.  
  150.             return number;
  151.         }
  152.     }
  153.  
  154.     class Player
  155.     {
  156.         private static int Ids;
  157.  
  158.         private int _id;
  159.         private string _nickname;
  160.         private int _level;
  161.         private bool _isBanned;
  162.  
  163.         static Player()
  164.         {
  165.             Ids = 1;
  166.         }
  167.  
  168.         public Player(string nickname)
  169.         {
  170.             _id = Ids++;
  171.             AssignNonStandardNickname(nickname);
  172.             _level = 1;
  173.             _isBanned = false;
  174.         }
  175.  
  176.         public int Id => _id;
  177.  
  178.         public void ShowInfo()
  179.         {
  180.             Console.Write($"{_id}. Ник: {_nickname}. Уровень: {_level}. ");
  181.  
  182.             if (_isBanned)
  183.                 Console.Write("Забанен.");
  184.  
  185.             Console.WriteLine();
  186.         }
  187.  
  188.         public void Ban()
  189.         {
  190.             _isBanned = true;
  191.         }
  192.  
  193.         public void UnBan()
  194.         {
  195.             _isBanned = false;
  196.         }
  197.  
  198.         private void AssignNonStandardNickname(string nickname)
  199.         {
  200.             if (nickname == "Player")
  201.             {
  202.                 nickname += "_" + _id;
  203.             }
  204.  
  205.             _nickname = nickname;
  206.         }
  207.     }
  208. }
Advertisement
Add Comment
Please, Sign In to add comment