Advertisement
SPavelA

OOPTask3DBPlayers

Oct 22nd, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.73 KB | Gaming | 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 OOPTask3DBPlayers
  8. {
  9.     internal class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             PlayersDataBase playersDataBase = new PlayersDataBase();
  14.             playersDataBase.Work();
  15.         }
  16.     }
  17.  
  18.     class PlayersDataBase
  19.     {
  20.         private const string CommandShowAllPlayers = "all";
  21.         private const string CommandAddPlayer = "add";
  22.         private const string CommandBanPlayer = "ban";
  23.         private const string CommandUnbanPlayer = "unban";
  24.         private const string CommandDeletePlayer = "delete";
  25.         private const string CommandExit = "exit";
  26.         private const string CommandYes = "yes";
  27.         private const string CommandNo = "no";
  28.  
  29.         private Dictionary <int, Player> players = new Dictionary<int, Player> ();
  30.  
  31.         public void Work()
  32.         {
  33.             bool isWorking = true;
  34.             string userCommand;
  35.  
  36.             while (isWorking)
  37.             {
  38.                 Console.WriteLine($"Сейчас в базе {players.Count} игроков.\n");
  39.                 Console.WriteLine("Что вы хотите?");
  40.                 Console.WriteLine($"{CommandShowAllPlayers} - показать всех игроков");
  41.                 Console.WriteLine($"{CommandAddPlayer} - добавить нового игрока");
  42.                 Console.WriteLine($"{CommandBanPlayer} - забанить игрока");
  43.                 Console.WriteLine($"{CommandUnbanPlayer} - разбанить игрока");
  44.                 Console.WriteLine($"{CommandDeletePlayer} - удалить игрока");
  45.                 Console.WriteLine($"{CommandExit} - выход из базы данных");
  46.                 Console.Write("\nВведите команду: ");
  47.                 userCommand = Console.ReadLine ();
  48.  
  49.                 switch (userCommand)
  50.                 {
  51.                     case CommandShowAllPlayers:
  52.                         ShowAllPlayers();
  53.                         break;
  54.                    
  55.                     case CommandAddPlayer:
  56.                         AddPlayer();
  57.                         break;
  58.  
  59.                     case CommandBanPlayer:
  60.                         BanPlayer();
  61.                         break;
  62.  
  63.                     case CommandUnbanPlayer:
  64.                         UnbanPlayer();
  65.                         break;
  66.  
  67.                     case CommandDeletePlayer:
  68.                         DeletePlayer();
  69.                         break;
  70.  
  71.                     case CommandExit:
  72.                         isWorking = false;
  73.                         break;
  74.  
  75.                     default:
  76.                         Console.WriteLine("Неизвестная команда.");
  77.                         break;
  78.                 }
  79.  
  80.                 Console.ReadKey();
  81.                 Console.Clear();
  82.             }
  83.         }
  84.  
  85.         private void ShowAllPlayers()
  86.         {
  87.             foreach (int playerID in players.Keys)
  88.             {
  89.                 Console.Write(playerID +" - ");
  90.                 players[playerID].ShowInfo();
  91.             }
  92.         }
  93.  
  94.         private void AddPlayer()
  95.         {
  96.             Console.Write("Введите уникальный номер игрока: ");
  97.             int playerID = ReadInt();
  98.  
  99.             if (players.ContainsKey(playerID))
  100.             {
  101.                 Console.WriteLine("Игрок с таким номером уже существует.");
  102.                 return;
  103.             }
  104.  
  105.             Console.WriteLine("Введите ник игрока: ");
  106.             string playerName = Console.ReadLine();
  107.             Console.WriteLine("Введите уровень игрока: ");
  108.             int playerLevel = ReadInt();
  109.             players.Add(playerID, new Player(playerName, playerLevel));
  110.             Console.WriteLine("Игрок успешно добавлен.");
  111.         }
  112.  
  113.         private void BanPlayer()
  114.         {
  115.             ShowAllPlayers();
  116.             Console.Write("Введите ID игрока, которого хотите забанить: ");
  117.             int playerID = ReadInt();
  118.  
  119.             if (players.ContainsKey(playerID))
  120.                 players[playerID].Ban();
  121.             else
  122.                 Console.WriteLine("Игрока с таким ID не существует.");
  123.         }
  124.  
  125.         private void UnbanPlayer()
  126.         {
  127.             ShowAllPlayers();
  128.             Console.Write("Введите ID игрока, которого хотите разбанить: ");
  129.             int playerID = ReadInt();
  130.  
  131.             if (players.ContainsKey(playerID))
  132.                 players[playerID].Unban();
  133.             else
  134.                 Console.WriteLine("Игрока с таким ID не существует.");
  135.         }
  136.  
  137.         private void DeletePlayer()
  138.         {
  139.             ShowAllPlayers();
  140.             Console.Write("Введите ID игрока, которого хотите удалить: ");
  141.             int playerID = ReadInt();
  142.  
  143.             if (players.ContainsKey(playerID))
  144.             {
  145.                 players.Remove(playerID);
  146.                 Console.WriteLine("Игрок успешно удален.");
  147.             }
  148.             else
  149.             {
  150.                 Console.WriteLine("Игрока с таким ID не существует.");
  151.             }
  152.         }
  153.  
  154.         private int ReadInt()
  155.         {
  156.             int inputNumber;
  157.            
  158.             while (int.TryParse(Console.ReadLine(), out inputNumber) == false)
  159.             {
  160.                 Console.Write("Это не число, попробуйте еще раз: ");
  161.             }
  162.  
  163.             return inputNumber;
  164.         }
  165.     }
  166.  
  167.     class Player
  168.     {
  169.         private string _name;
  170.         private int _level;
  171.         private bool _isBanned;
  172.  
  173.         public Player(string name, int level)
  174.         {
  175.             _name = name;
  176.             _level = level;
  177.             _isBanned = false;
  178.         }
  179.  
  180.         public void ShowInfo()
  181.         {
  182.             Console.Write($"игрок с ником \"{_name}\" имеет уровень {_level} и ");
  183.             if (_isBanned)
  184.                 Console.WriteLine("забанен на сервере.");
  185.             else
  186.                 Console.WriteLine("может спокойно играть.");
  187.         }
  188.  
  189.         public void Ban()
  190.         {
  191.             _isBanned = true;
  192.             Console.Write($"игрок с ником \"{_name}\" забанен.");
  193.         }
  194.  
  195.         public void Unban()
  196.         {
  197.             _isBanned = false;
  198.             Console.Write($"игрок с ником \"{_name}\" разбанен.");
  199.         }
  200.     }
  201. }
  202.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement