voldmaks

База данных игроков

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