Advertisement
ZhongNi

Player Database (2)

Mar 21st, 2024 (edited)
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.51 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Classes
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             const string CommandAddPlayer = "1";
  11.             const string CommandRemovePlayer = "2";
  12.             const string CommandBannPlayer = "3";
  13.             const string CommandUnbannPlayer = "4";
  14.             const string CommandShowAllPlayers = "5";
  15.             const string CommandExit = "0";
  16.  
  17.             bool isRunning = true;
  18.  
  19.             Datebase datebase = new Datebase();
  20.  
  21.             while (isRunning)
  22.             {
  23.                 Console.WriteLine($"Введите команду:\n" +
  24.                     $"{CommandAddPlayer} - добавить игрока\n" +
  25.                     $"{CommandRemovePlayer} - удалить игрока\n" +
  26.                     $"{CommandBannPlayer} - забанить игрока по номеру\n" +
  27.                     $"{CommandUnbannPlayer} - разбанить игрока по номеру\n" +
  28.                     $"{CommandShowAllPlayers} - показать всех игроков\n" +
  29.                     $"{CommandExit} - выход\n");
  30.                 string userCommand = Console.ReadLine();
  31.  
  32.                 switch (userCommand)
  33.                 {
  34.                     case CommandAddPlayer:
  35.                         datebase.AddPlayer();
  36.                         break;
  37.  
  38.                     case CommandRemovePlayer:
  39.                         datebase.RemovePlayer();
  40.                         break;
  41.  
  42.                     case CommandBannPlayer:
  43.                         datebase.BannPlayer();
  44.                         break;
  45.  
  46.                     case CommandUnbannPlayer:
  47.                         datebase.UnbannPlayer();
  48.                         break;
  49.  
  50.                     case CommandShowAllPlayers:
  51.                         datebase.ShowAllPlayers();
  52.                         break;
  53.  
  54.                     case CommandExit:
  55.                         isRunning = false;
  56.                         break;
  57.  
  58.                     default:
  59.                         Console.WriteLine("Повторите ввод команды");
  60.                         break;
  61.                 }
  62.  
  63.                 Console.Clear();
  64.             }
  65.         }
  66.     }
  67.  
  68.     class Datebase
  69.     {
  70.         private List<Player> _player = new List<Player>();
  71.  
  72.         public void AddPlayer()
  73.         {
  74.             Console.WriteLine("Введите имя");
  75.             string nickName = Console.ReadLine();
  76.             Console.WriteLine("Введите номер");
  77.             bool haveNumber = int.TryParse(Console.ReadLine(), out int number);
  78.             Console.WriteLine("Введите уровень");
  79.             bool haveLevel = int.TryParse(Console.ReadLine(), out int level);
  80.             string signBaned = "0";
  81.             string signUnbaned = "1";
  82.             Console.WriteLine($"Статус игрока ({signBaned} - если забанен, {signUnbaned} - если доступен)");
  83.  
  84.             bool isBanned = false;
  85.             bool haveStatus = true;
  86.  
  87.             string userInput = Console.ReadLine();
  88.  
  89.             if (userInput == signBaned)
  90.                 isBanned = true;
  91.             else if (userInput == signUnbaned)
  92.                 isBanned = false;
  93.             else
  94.                 haveStatus = false;
  95.  
  96.             foreach (Player player in _player)
  97.             {
  98.                 if (player.Number == number)
  99.                 {
  100.                     Console.WriteLine("Номер не уникален");
  101.                     Console.ReadKey();
  102.                     haveNumber = false;
  103.                 }
  104.             }
  105.  
  106.             if (haveNumber == true && haveLevel == true && haveStatus == true)
  107.             {
  108.                 _player.Add(new Player(nickName, number, level, isBanned));
  109.             }
  110.             else
  111.             {
  112.                 Console.WriteLine("Неверный ввод, для продолжения нажмите что нибудь");
  113.                 Console.ReadKey();
  114.             }
  115.         }
  116.  
  117.  
  118.         public void RemovePlayer()
  119.         {
  120.             Console.WriteLine("Введите номер игрока запись о котором нужно удалить");
  121.  
  122.             if (TryGetPlayer(out Player player))
  123.                 _player.Remove(player);
  124.         }
  125.  
  126.         public void BannPlayer()
  127.         {
  128.             Console.WriteLine("Введите номер игрока которого нужно забанить");
  129.  
  130.             if (TryGetPlayer(out Player player))
  131.                 player.Ban();
  132.         }
  133.  
  134.         public void UnbannPlayer()
  135.         {
  136.             Console.WriteLine("Введите номер игрока которого нужно разабанить");
  137.  
  138.             if (TryGetPlayer(out Player player))
  139.                 player.Unban();
  140.         }
  141.  
  142.         public void ShowAllPlayers()
  143.         {
  144.             foreach (Player player in _player)
  145.             {
  146.                 string status;
  147.  
  148.                 if (player.IsBanned == true)
  149.                     status = "Забанен";
  150.                 else
  151.                     status = "Свободен";
  152.  
  153.                 Console.WriteLine($"Ник: {player.NickName} Номер: {player.Number} Уровень: {player.Level} Статус: {status}");
  154.             }
  155.  
  156.             Console.ReadKey();
  157.         }
  158.  
  159.         private bool TryGetPlayer(out Player player)
  160.         {
  161.             int.TryParse(Console.ReadLine(), out int number);
  162.  
  163.             foreach (Player findedPlayer in _player)
  164.             {
  165.                 if (findedPlayer.Number == number)
  166.                 {
  167.                     player = findedPlayer;
  168.                     return true;
  169.                 }
  170.             }
  171.  
  172.             Console.WriteLine("Нет такого номера");
  173.             Console.ReadKey();
  174.             player = null;
  175.             return false;
  176.         }
  177.     }
  178.  
  179.     class Player
  180.     {
  181.         public Player(string nickName, int number, int level, bool isBanned)
  182.         {
  183.             NickName = nickName;
  184.             Number = number;
  185.             Level = level;
  186.             IsBanned = isBanned;
  187.         }
  188.  
  189.         public string NickName { get; private set; }
  190.         public int Number { get; private set; }
  191.         public int Level { get; private set; }
  192.         public bool IsBanned { get; private set; }
  193.  
  194.         public void Ban()
  195.         {
  196.             IsBanned = true;
  197.         }
  198.  
  199.         public void Unban()
  200.         {
  201.             IsBanned = false;
  202.         }
  203.     }
  204. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement