Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace CSLight
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- const string CommandAddNewPlayer = "0";
- const string CommandDeletePlayer = "1";
- const string CommandBanPlayer = "2";
- const string CommandUnbanPlayer = "3";
- const string CommandShowPlayerInfo = "4";
- PlayersDataBase Database = new PlayersDataBase();
- bool isRunning = true;
- while (isRunning)
- {
- Console.WriteLine("Введите команду \n" +
- $"{CommandAddNewPlayer} - Добавить игрока\n" +
- $"{CommandDeletePlayer} - Удалить игрока\n" +
- $"{CommandBanPlayer} - Забанить игрока\n" +
- $"{CommandUnbanPlayer} - Разбанить игрока\n" +
- $"{CommandShowPlayerInfo} - Показать инфо игроков\n");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandAddNewPlayer:
- Database.AddPlayer();
- break;
- case CommandDeletePlayer:
- Database.DeletePlayer();
- break;
- case CommandBanPlayer:
- Database.BanPlayer();
- break;
- case CommandUnbanPlayer:
- Database.UnbanPlayer();
- break;
- case CommandShowPlayerInfo:
- Database.ShowPlayersInfo();
- break;
- default:
- isRunning = false;
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class PlayersDataBase
- {
- private Dictionary<int, Player> _players = new Dictionary<int, Player>();
- public PlayersDataBase()
- {
- Random random = new Random();
- int minValue = 1;
- int maxValue = 10;
- for (int i = 0; i < random.Next(minValue, maxValue); i++)
- {
- AddPlayer();
- }
- }
- public void ShowPlayersInfo()
- {
- foreach (Player player in _players.Values)
- {
- Console.WriteLine($"ID - {player.Id} ИМЯ - {player.Name} УРОВЕНЬ - {player.Level} ЗАБАНЕН? - {player.IsBanned}");
- }
- }
- public void AddPlayer()
- {
- int id = GenerateUniqueId();
- _players.Add(id, new Player(id));
- Console.WriteLine($"Игрок с id {id} добавлен");
- }
- public void DeletePlayer()
- {
- if (TryGetPlayer(out Player player))
- {
- _players.Remove(player.Id);
- }
- }
- public void BanPlayer()
- {
- if (TryGetPlayer(out Player player))
- {
- player.Ban(); ;
- }
- }
- public void UnbanPlayer()
- {
- if (TryGetPlayer(out Player player))
- {
- player.Unban();
- }
- }
- private bool TryGetPlayer(out Player player)
- {
- player = null;
- Console.WriteLine("Введите ID");
- if (int.TryParse(Console.ReadLine(), out int id))
- {
- if (_players.ContainsKey(id))
- {
- player = _players[id];
- return true;
- }
- else
- {
- Console.WriteLine("Такого ID не найдено");
- }
- }
- else
- {
- Console.WriteLine("Неверный ввод");
- }
- return false;
- }
- private int GenerateUniqueId()
- {
- int id = 0;
- bool isIdGenerated = false;
- while (isIdGenerated == false)
- {
- if (_players.ContainsKey(id) == false)
- {
- isIdGenerated = true;
- }
- else
- {
- id++;
- }
- }
- return id;
- }
- }
- class Player
- {
- public Player(int id)
- {
- Id = id;
- Name = "Player " + Id;
- }
- public int Id { get; private set; }
- public bool IsBanned { get; private set; } = false;
- public string Name { get; private set; }
- public int Level { get; private set; } = 1;
- public void Ban()
- {
- IsBanned = true;
- }
- public void Unban()
- {
- IsBanned = false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement