Advertisement
Torgach

DBofPlayers

Mar 22nd, 2021
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.21 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 BDPlayers
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             bool isRun = true;
  14.  
  15.             Player player = new Player();
  16.  
  17.             DataBase dataBase = new DataBase();
  18.  
  19.             List<Player> players = dataBase.Players;
  20.  
  21.             //players.Add(new Player("Io", 1, 15, true)); игрок для теста
  22.  
  23.             while (isRun)
  24.             {
  25.                 Console.WriteLine("[1] - добавить игрока, [2] - показать всех игроков, " +
  26.                     "[3] - забанить игрока\n[4] - разбанить игрока, [5] - удалить игрока, [6] - выход");
  27.                 Console.Write("Ввод: ");
  28.                 switch (Console.ReadLine())
  29.                 {
  30.                     case "1":
  31.                         dataBase.AddPlayer(player, players);
  32.                         break;
  33.                     case "2":
  34.                         dataBase.ShowPlayers(players);
  35.                         break;
  36.                     case "3":
  37.                         dataBase.BanPlayer(player, players);
  38.                         break;
  39.                     case "4":
  40.                         dataBase.UnbanPlayer(players);
  41.                         break;
  42.                     case "5":
  43.                         dataBase.DeletePlayer(players);
  44.                         break;
  45.                     case "6":
  46.                         isRun = false;
  47.                         break;
  48.                     default:
  49.                         Console.WriteLine("Ошибка!");
  50.                         break;
  51.                 }
  52.             }
  53.  
  54.         }
  55.  
  56.     }
  57.  
  58.     class Player
  59.     {
  60.         public Player()
  61.         {
  62.             Nickname = "Без имени";
  63.             Index = 0;
  64.             Level = 0;
  65.             IsBanned = false;
  66.         }
  67.  
  68.         public Player(string nickname, int index, int lvl, bool isBannded)
  69.         {
  70.             Nickname = nickname;
  71.             Index = index;
  72.             Level = lvl;
  73.             IsBanned = isBannded;
  74.         }
  75.  
  76.         public string Nickname { get; set; }
  77.  
  78.         public int Index { get; set; }
  79.  
  80.         public int Level { get; set; }
  81.  
  82.         public bool IsBanned { get; set; }
  83.     }
  84.  
  85.     class DataBase
  86.     {
  87.         public List<Player> Players { get; private set; } = new List<Player>();
  88.  
  89.         public DataBase()
  90.         {
  91.             Players = new List<Player>(0);
  92.         }
  93.  
  94.         public DataBase(List<Player> players)
  95.         {
  96.             Players = players;
  97.         }
  98.  
  99.         public void AddPlayer(Player player, List<Player> players)
  100.         {
  101.             Console.Write("Введите никнейм: ");
  102.             player.Nickname = Console.ReadLine();
  103.  
  104.             Console.Write("Введите уровень игрока: ");
  105.             player.Level = int.Parse(Console.ReadLine());
  106.  
  107.             Console.Write("Игрок по умолчанию не в бане. Забанить? [Да]/[Нет]");
  108.             string userInput = Console.ReadLine();
  109.             if (userInput == "Да")
  110.             {
  111.                 Console.WriteLine("Баним...");
  112.                 player.IsBanned = true;
  113.             }
  114.             else if (userInput == "Нет")
  115.                 Console.WriteLine("Не баним...");
  116.             else
  117.             {
  118.                 Console.WriteLine("Неправильный ввод, устанавливаем по умолчанию...");
  119.             }
  120.  
  121.             Console.WriteLine("Порядковый номер пользователя: " + ((player.Index = players.Count + 1)));
  122.  
  123.             players.Add(new Player(player.Nickname, player.Index, player.Level, player.IsBanned));
  124.         }
  125.  
  126.         public void ShowPlayers(List<Player> players)
  127.         {
  128.             if (players.Count == 0)
  129.             {
  130.                 Console.WriteLine("База данных пуста!");
  131.                 return;
  132.             }
  133.  
  134.             foreach (var player in players)
  135.             {
  136.                 Console.Write($"Игрок №{player.Index}: {player.Nickname};{player.Level} lvl;");
  137.                 if (player.IsBanned)
  138.                     Console.Write($"В бане.\n");
  139.                 else
  140.                     Console.Write($"Не в бане.\n");
  141.             }
  142.         }
  143.  
  144.         public void DeletePlayer(List<Player> players)
  145.         {
  146.             if (players.Count == 0)
  147.             {
  148.                 Console.WriteLine("База данных пуста!");
  149.                 return;
  150.             }
  151.  
  152.             Console.Write("Выберите порядковый номер игрока, которого нужно удалить: ");
  153.  
  154.             if (int.TryParse(Console.ReadLine(), out int userIndex) == false || (userIndex > players.Count || userIndex <= 0))
  155.             {
  156.                 Console.WriteLine("Некорректный ввод!");
  157.                 return;
  158.             }
  159.  
  160.             Console.WriteLine($"Игрок с порядковым номером: {userIndex} - удален");
  161.  
  162.             players.RemoveAt(userIndex - 1);
  163.         }
  164.  
  165.         public void BanPlayer(Player player, List<Player> players)
  166.         {
  167.             if (players.Count == 0)
  168.             {
  169.                 Console.WriteLine("База данных пуста!");
  170.                 return;
  171.             }
  172.  
  173.             Console.Write("Выберите порядковый номер игрока, которого нужно забанить: ");
  174.  
  175.             if (int.TryParse(Console.ReadLine(), out int userIndex) == false || (userIndex > players.Count || userIndex <= 0))
  176.             {
  177.                 Console.WriteLine("Некорректный ввод!");
  178.                 return;
  179.             }
  180.  
  181.             if(players[userIndex - 1].IsBanned)
  182.             {
  183.                 Console.WriteLine("Игрок уже забанен!");
  184.                 return;
  185.             }
  186.  
  187.             players[userIndex - 1].IsBanned = true;
  188.  
  189.             Console.WriteLine($"Игрок с порядковым номером: {userIndex} - забанен");
  190.         }
  191.  
  192.         public void UnbanPlayer(List<Player> players)
  193.         {
  194.             if (players.Count == 0)
  195.             {
  196.                 Console.WriteLine("База данных пуста!");
  197.                 return;
  198.             }
  199.  
  200.             Console.Write("Выберите порядковый номер игрока, которого нужно разбанить: ");
  201.  
  202.             if (int.TryParse(Console.ReadLine(), out int userIndex) == false || (userIndex > players.Count || userIndex <= 0))
  203.             {
  204.                 Console.WriteLine("Некорректный ввод!");
  205.                 return;
  206.             }
  207.  
  208.             if (players[userIndex - 1].IsBanned == false)
  209.             {
  210.                 Console.WriteLine("Игрок не в бане!");
  211.                 return;
  212.             }
  213.  
  214.             players[userIndex - 1].IsBanned = false;
  215.  
  216.             Console.WriteLine($"Игрок с порядковым номером: {userIndex} - разбанен");
  217.         }
  218.  
  219.        
  220.     }
  221.  
  222.  
  223. }
  224.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement