Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Drawing;
- using System.Reflection;
- internal class Program
- {
- static void Main(string[] args)
- {
- const string CommandAddPlayer = "1";
- const string CommandBanPlayerById = "2";
- const string CommandUnbanPlayerById = "3";
- const string CommandDeletePlayerById = "4";
- const string CommandExit = "Exit";
- bool isRun = true;
- DataBase dataBase = new DataBase();
- while (isRun)
- {
- Console.Clear();
- dataBase.ShowInfo();
- Console.WriteLine($"{CommandAddPlayer} - Добавить игрока.\n" +
- $"{CommandBanPlayerById} - Заблокировать игрока по ID.\n" +
- $"{CommandUnbanPlayerById} - Разблокировать игрока по ID.\n" +
- $"{CommandDeletePlayerById} - Удалить игрока по ID.\n" +
- $"{CommandExit} - Завершить программу.");
- switch (Console.ReadLine())
- {
- case CommandAddPlayer:
- dataBase.AddPlayer();
- break;
- case CommandBanPlayerById:
- dataBase.BanPlayer();
- break;
- case CommandUnbanPlayerById:
- dataBase.UnbanPlayer();
- break;
- case CommandDeletePlayerById:
- dataBase.DeletePlayer();
- break;
- case CommandExit:
- isRun = false;
- break;
- default:
- Console.WriteLine("Ошибка ввода.");
- break;
- }
- Console.ReadKey();
- }
- Console.WriteLine("Программа завершена.");
- Console.ReadKey();
- }
- }
- class Player
- {
- static private int _identifications;
- private bool _isBaned;
- public Player(string name)
- {
- Name = name;
- Level = 1;
- Identification = ++_identifications;
- _isBaned = false;
- }
- public string Name { get; private set; }
- public int Level { get; private set; }
- public int Identification { get; private set; }
- public void Block()
- {
- _isBaned = true;
- }
- public void Unblock()
- {
- _isBaned = false;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"{Identification}. Игрок: {Name}, уровень - {Level}. " + (_isBaned ? "Заблокирован." : "Активен."));
- }
- }
- class DataBase
- {
- private List<Player> _players;
- public DataBase()
- {
- _players = new List<Player>();
- }
- public void ShowInfo()
- {
- if (_players.Count > 0)
- {
- foreach (Player player in _players)
- {
- player.ShowInfo();
- }
- }
- else
- {
- Console.WriteLine("Нет игроков в базе.");
- }
- Console.WriteLine(new String('-', 35));
- }
- public void AddPlayer()
- {
- Console.Write("Введи имя игрока: ");
- string name = Console.ReadLine();
- _players.Add(new Player(name));
- Console.WriteLine("Игрок добален.");
- }
- public void BanPlayer()
- {
- if(TryGetPlayer(out Player player))
- {
- player.Block();
- }
- }
- public void UnbanPlayer()
- {
- if (TryGetPlayer(out Player player))
- {
- player.Unblock();
- }
- }
- public void DeletePlayer()
- {
- if(TryGetPlayer(out Player player))
- {
- _players.Remove(player);
- }
- }
- private bool TryGetPlayer(out Player foundPlayer)
- {
- Console.Write("Введите номер игрока: ");
- int id = ReadInt(Console.ReadLine());
- foreach (Player player in _players)
- {
- if (player.Identification == id)
- {
- foundPlayer = player;
- return true;
- }
- }
- Console.WriteLine("Нет игрока с таким номером.");
- foundPlayer = null;
- return false;
- }
- private int ReadInt(string input)
- {
- int result;
- int.TryParse(input, out result);
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment