Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Homework_40
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- const string CommandAddPlayer = "add";
- const string CommandDeletePlayer = "del";
- const string CommandBanPlayer = "ban";
- const string CommandUnbanPlayer = "unban";
- const string CommandShowInfo = "show";
- const string CommandExitProgram = "exit";
- Database database = new Database();
- bool isWork = true;
- while (isWork)
- {
- Console.WriteLine("Вы в меню базы данных игроков. Введите нужную команду для действия: ");
- Console.WriteLine($"Введите {CommandAddPlayer} чтобы добавить игрока.");
- Console.WriteLine($"Введите {CommandDeletePlayer} чтобы удалить игрока.");
- Console.WriteLine($"Введите {CommandBanPlayer} чтобы забанить игрока");
- Console.WriteLine($"Введите {CommandUnbanPlayer} чтобы разбанить игрока");
- Console.WriteLine($"Введите {CommandShowInfo} чтобы посмотреть информацию о всех игроках");
- Console.WriteLine($"Введите {CommandExitProgram} чтобы выйти из программы");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandAddPlayer:
- database.AddPlayer();
- break;
- case CommandDeletePlayer:
- database.DeletePlayer();
- break;
- case CommandBanPlayer:
- database.TryBanPlayer();
- break;
- case CommandUnbanPlayer:
- database.TryUnbanPlayer();
- break;
- case CommandShowInfo:
- database.ShowPlayersList();
- break;
- case CommandExitProgram:
- isWork = database.ExitProgram();
- break;
- default:
- Console.WriteLine("Неверная команда!");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Player
- {
- public Player(int id, string name, int level)
- {
- Id = id;
- Name = name;
- Level = level;
- IsBanned = false;
- }
- public int Id { get; private set; }
- public string Name { get; private set; }
- public int Level { get; private set; }
- public bool IsBanned { get; private set; }
- public void ShowInfo()
- {
- Console.WriteLine($"ID : {Id}.Имя игрока: {Name}, Уровень игрока: {Level}, Доступ игрока(Забанен или нет): {IsBanned}");
- }
- public void Ban()
- {
- IsBanned = true;
- }
- public void Unban()
- {
- IsBanned = false;
- }
- }
- class Database
- {
- private List<Player> _players;
- public Database()
- {
- _players = new List<Player>();
- }
- public void AddPlayer()
- {
- int id = ReadNumber("Введите ID игрока: ");
- if (TryGetPlayer(id, out Player player))
- {
- Console.WriteLine("Игрок с таким ID уже существует.");
- return;
- }
- Console.WriteLine("Введите имя игрока: ");
- string name = Console.ReadLine();
- int level = ReadNumber("Введите уровень игрока: ");
- _players.Add(new Player(id, name, level));
- Console.WriteLine("Игрок успешно добавлен.");
- }
- public void DeletePlayer()
- {
- if (IsEmptyListPlayers() == false)
- {
- int numbeIDForDelete = ReadNumber("Введите ID игрока которого хотите удалить: ");
- if (TryGetPlayer(numbeIDForDelete, out Player player))
- {
- _players.Remove(player);
- }
- else
- {
- Console.WriteLine("Нет игрока с таким ID!");
- }
- }
- }
- public void ShowPlayersList()
- {
- if (IsEmptyListPlayers() == false)
- {
- foreach (Player player in _players)
- {
- player.ShowInfo();
- }
- }
- }
- public void TryBanPlayer()
- {
- int numberIDForBanned = ReadNumber("Введите ID игрока чтобы забанить: ");
- if (TryGetPlayer(numberIDForBanned, out Player player))
- {
- player.Ban();
- }
- else
- {
- Console.WriteLine("Игрок уже забанен!");
- }
- }
- public void TryUnbanPlayer()
- {
- int numberIDForUnbanned = ReadNumber("Введите ID игрока чтобы разбанить: ");
- if (TryGetPlayer(numberIDForUnbanned, out Player player))
- {
- player.Unban();
- }
- else
- {
- Console.WriteLine("Игрок уже разбанен!");
- }
- }
- public bool ExitProgram()
- {
- Console.WriteLine("Вы вышли из программы!");
- return false;
- }
- private bool TryGetPlayer(int id, out Player player)
- {
- player = null;
- bool isGamerFound = true;
- foreach (Player gamer in _players)
- {
- if (gamer.Id == id)
- {
- player = gamer;
- return isGamerFound;
- }
- }
- return false;
- }
- private bool IsEmptyListPlayers()
- {
- bool isEmpty = false;
- if (_players.Count == 0)
- {
- isEmpty = true;
- Console.WriteLine("Список пуст!");
- }
- return isEmpty;
- }
- private int ReadNumber(string message)
- {
- int number = 0;
- bool isNumber = false;
- while (isNumber == false)
- {
- Console.Write(message);
- isNumber = int.TryParse(Console.ReadLine(), out number);
- }
- return number;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement