Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace Ijunior
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- const string CommandAddPlayer = "1";
- const string CommandShowPlayers = "2";
- const string CommandBanPlayer = "3";
- const string CommandUnbanPlayer = "4";
- const string CommandRemovePlayer = "5";
- const string CommandExit = "6";
- bool isWork = true;
- Database database = new Database();
- while (isWork)
- {
- Console.Write($"{CommandAddPlayer} - добавить игрока" +
- $"\n{CommandShowPlayers} - посмотреть игроков" +
- $"\n{CommandBanPlayer} - забанить игрока" +
- $"\n{CommandUnbanPlayer} - разбанить игрока" +
- $"\n{CommandRemovePlayer} - удалить игрока" +
- $"\n{CommandExit} - выйти из программы" +
- $"\nВведите номер: ");
- switch (Console.ReadLine())
- {
- case CommandAddPlayer:
- database.AddPlayer();
- break;
- case CommandShowPlayers:
- database.ShowPlayers();
- break;
- case CommandBanPlayer:
- database.BanPlayer();
- break;
- case CommandUnbanPlayer:
- database.UnbanPlayer();
- break;
- case CommandRemovePlayer:
- database.RemovePlayer();
- break;
- case CommandExit:
- isWork = false;
- break;
- default:
- Console.WriteLine("Неверный ввод");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Database
- {
- private List<Player> _players = new List<Player>();
- public void AddPlayer()
- {
- Console.Write("Введите имя игрока: ");
- string name = Console.ReadLine();
- Console.Write("Введите уровень игрока: ");
- if (TryReadInt(Console.ReadLine(), out int level))
- {
- _players.Add(new Player(name, level));
- }
- }
- public void ShowPlayers()
- {
- char separator = '-';
- int separatorLength = 10;
- if (_players.Count > 0)
- {
- foreach (Player player in _players)
- {
- player.ShowInfo();
- Console.WriteLine("\n" + new string(separator, separatorLength));
- }
- }
- else
- {
- Console.WriteLine("Список пуст");
- }
- }
- public void BanPlayer()
- {
- if (TryGetPlayer(out Player player))
- player.Ban();
- }
- public void UnbanPlayer()
- {
- if (TryGetPlayer(out Player player))
- player.Unban();
- }
- public void RemovePlayer()
- {
- if (TryGetPlayer(out Player player))
- _players.Remove(player);
- }
- private bool TryGetPlayer(out Player player)
- {
- player = null;
- int id;
- ShowPlayers();
- Console.Write("Введите ID игрока: ");
- if (TryReadInt(Console.ReadLine(), out id))
- {
- foreach (Player foundPlayer in _players)
- {
- if (foundPlayer.ID == id)
- {
- player = foundPlayer;
- return true;
- }
- }
- }
- Console.WriteLine("Игрока с таким ID нет");
- return false;
- }
- private bool TryReadInt(string userInput, out int number)
- {
- if (int.TryParse(userInput, out number))
- return true;
- else
- Console.WriteLine("Некорректный ввод");
- return false;
- }
- }
- class Player
- {
- private static int s_id;
- private string _name;
- private int _level;
- private bool _isBanned;
- public Player(string name, int level)
- {
- ++s_id;
- ID = s_id;
- _name = name;
- _level = level;
- _isBanned = false;
- }
- public int ID { get; private set; }
- public void ShowInfo()
- {
- Console.Write($"ID: {ID} \nИмя: {_name} \nУровень: {_level} \nНаличие бана: ");
- ShowBan();
- }
- private void ShowBan()
- {
- if (_isBanned)
- Console.Write("забанен");
- else
- Console.Write("не забанен");
- }
- public void Ban()
- {
- _isBanned = true;
- }
- public void Unban()
- {
- _isBanned = false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment