Torgach

tempBDofPlayers

Mar 24th, 2021 (edited)
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.60 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.             Database database = new Database();
  16.  
  17.             while (isRun)
  18.             {
  19.                 isRun = database.IsWork();
  20.             }
  21.  
  22.         }
  23.     }
  24.  
  25.     class Player
  26.     {
  27.         public string Nickname { get; private set; }
  28.         public int Index { get; private set; }
  29.         public int Level { get; private set; }
  30.         public bool IsBanned { get; private set; }
  31.  
  32.         List<Player> Gamers = new List<Player>(0);
  33.  
  34.         public Player()
  35.         {
  36.             Nickname = "Без имени";
  37.             Index = 0;
  38.             Level = 0;
  39.             IsBanned = false;
  40.         }
  41.  
  42.         public Player(string nickname, int index, int lvl, bool isBannded)
  43.         {
  44.             Nickname = nickname;
  45.             Index = index;
  46.             Level = lvl;
  47.             IsBanned = isBannded;
  48.         }
  49.  
  50.         public void AddPlayer()
  51.         {
  52.             Console.Write("Введите никнейм: ");
  53.             Nickname = Console.ReadLine();
  54.  
  55.             Console.Write("Введите уровень игрока: ");
  56.             Level = int.Parse(Console.ReadLine());
  57.  
  58.             Console.Write("Игрок по умолчанию не в бане. Забанить? [Да]/[Нет]");
  59.             string userInput = Console.ReadLine();
  60.             if (userInput == "Да")
  61.             {
  62.                 Console.WriteLine("Баним...");
  63.                 IsBanned = true;
  64.             }
  65.             else if (userInput == "Нет")
  66.             {
  67.                 Console.WriteLine("Не баним...");
  68.             }
  69.             else
  70.             {
  71.                 Console.WriteLine("Неправильный ввод, устанавливаем по умолчанию...");
  72.             }
  73.  
  74.             Console.WriteLine("Порядковый номер пользователя: " + (Index = Gamers.Count + 1));
  75.  
  76.             Gamers.Add(new Player(Nickname, Index, Level, IsBanned));
  77.         }
  78.  
  79.         public void ShowPlayers()
  80.         {
  81.             if (Gamers.Count == 0)
  82.             {
  83.                 Console.WriteLine("База данных пуста!");
  84.                 return;
  85.             }
  86.  
  87.             foreach (var player in Gamers)
  88.             {
  89.                 Console.Write($"Игрок №{player.Index}: {player.Nickname};{player.Level} lvl;");
  90.                 if (player.IsBanned)
  91.                     Console.Write($"В бане.\n");
  92.                 else
  93.                     Console.Write($"Не в бане.\n");
  94.             }
  95.         }
  96.  
  97.         public void DeletePlayer()
  98.         {
  99.             if (isUserInputCorrect(out int userIndex, Gamers) && isDataBaseEmpty(Gamers))
  100.             {
  101.                 Console.WriteLine($"Игрок с порядковым номером: {userIndex} - удален");
  102.                 Gamers.RemoveAt(userIndex - 1);
  103.             }
  104.         }
  105.  
  106.         public void SetAccess(bool flag)
  107.         {
  108.             if(isUserInputCorrect(out int userIndex, Gamers) && isDataBaseEmpty(Gamers))
  109.             {
  110.                 if (Gamers[userIndex - 1].IsBanned == flag)
  111.                 {
  112.                     Console.WriteLine($"Бан игрока - {flag}!");
  113.                     return;
  114.                 }
  115.  
  116.                 Gamers[userIndex - 1].IsBanned = flag;
  117.  
  118.                 Console.WriteLine($"Бан игрок с порядковым номером: {userIndex} задан как {flag}");
  119.             }
  120.         }
  121.  
  122.         public bool isUserInputCorrect(out int userIndex, List<Player> Gamers)
  123.         {
  124.             Console.Write("Выберите порядковый номер игрока: ");
  125.  
  126.             if (int.TryParse(Console.ReadLine(), out userIndex) == false || (userIndex > Gamers.Count || userIndex <= 0))
  127.             {
  128.                 Console.WriteLine("Некорректный ввод!");
  129.                 return false;
  130.             }
  131.             return true;
  132.         }
  133.  
  134.         public bool isDataBaseEmpty(List<Player> Gamers)
  135.         {
  136.             if (Gamers.Count == 0)
  137.             {
  138.                 Console.WriteLine("База данных пуста!");
  139.                 return false;
  140.             }
  141.             return true;
  142.         }
  143.  
  144.     }
  145.  
  146.     class Database
  147.     {
  148.         Player player1 = new Player();
  149.         public bool IsWork()
  150.         {
  151.             Console.WriteLine("[1] - добавить игрока, [2] - показать всех игроков, " +
  152.                 "[3] - забанить игрока\n[4] - разбанить игрока, [5] - удалить игрока, [6] - выход");
  153.             Console.Write("Ввод: ");
  154.  
  155.             switch (Console.ReadLine())
  156.             {
  157.                 case "1":
  158.                     player1.AddPlayer();
  159.                     break;
  160.                 case "2":
  161.                     player1.ShowPlayers();
  162.                     break;
  163.                 case "3":
  164.                     player1.SetAccess(true);
  165.                     break;
  166.                 case "4":
  167.                     player1.SetAccess(false);
  168.                     break;
  169.                 case "5":
  170.                     player1.DeletePlayer();
  171.                     break;
  172.                 case "6":
  173.                     return false;
  174.                 default:
  175.                     Console.WriteLine("Ошибка!");
  176.                     break;
  177.             }
  178.             return true;
  179.         }
  180.     }
  181. }
Add Comment
Please, Sign In to add comment