Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Home_Work
- {
- class Program
- {
- static void Main(string[] args)
- {
- Database database = new Database();
- bool isWorking = true;
- string userInput;
- while (isWorking)
- {
- ShowMenu();
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case "1":
- database.AddPlayer();
- break;
- case "2":
- database.ShowAllPlayers();
- break;
- case "3":
- database.BanPlayer();
- break;
- case "4":
- database.UnbanPlayer();
- break;
- case "5":
- database.DeletePlayer();
- break;
- default:
- Console.WriteLine("Такой команды нет.");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- static void ShowMenu()
- {
- Console.WriteLine("1. Добавить игрока.\n" +
- "2. Вывести всех игроков.\n" +
- "3. Забанить игрока.\n" +
- "4. Разбанить игрока. \n" +
- "5. Удалить игрока.\n" +
- "6. Выход.\n");
- Console.Write("Введите номер команды: ");
- }
- }
- class Database
- {
- private List<Player> _players;
- public Database()
- {
- _players = new List<Player>();
- }
- public void AddPlayer()
- {
- string nickname = "Player";
- Console.Write("Введите никнейм: ");
- nickname = Console.ReadLine();
- _players.Add(new Player(nickname));
- }
- public void ShowAllPlayers()
- {
- foreach (Player player in _players)
- {
- player.ShowInfo();
- }
- }
- public void BanPlayer()
- {
- if(TryFindPlayer(out Player player))
- {
- player.Ban();
- }
- }
- public void UnbanPlayer()
- {
- if (TryFindPlayer(out Player player))
- {
- player.Ban();
- }
- }
- public void DeletePlayer()
- {
- if (TryFindPlayer(out Player player))
- {
- _players.Remove(player);
- }
- }
- private bool TryFindPlayer(out Player foundPlayer)
- {
- int number = GetNumber();
- foreach (Player player in _players)
- {
- if (player.Id == number)
- {
- foundPlayer = player;
- return true;
- }
- }
- Console.WriteLine("Игрок с таким ID отсутствует.");
- foundPlayer = null;
- return false;
- }
- private int GetNumber()
- {
- bool isConvert = false;
- int number = 0;
- string userInput;
- while (isConvert == false)
- {
- Console.Write("Введите ID: ");
- userInput = Console.ReadLine();
- isConvert = Int32.TryParse(userInput, out number);
- }
- return number;
- }
- }
- class Player
- {
- private static int Ids;
- private int _id;
- private string _nickname;
- private int _level;
- private bool _isBanned;
- static Player()
- {
- Ids = 1;
- }
- public Player(string nickname)
- {
- _id = Ids++;
- AssignNonStandardNickname(nickname);
- _level = 1;
- _isBanned = false;
- }
- public int Id => _id;
- public void ShowInfo()
- {
- Console.Write($"{_id}. Ник: {_nickname}. Уровень: {_level}. ");
- if (_isBanned)
- Console.Write("Забанен.");
- Console.WriteLine();
- }
- public void Ban()
- {
- _isBanned = true;
- }
- public void UnBan()
- {
- _isBanned = false;
- }
- private void AssignNonStandardNickname(string nickname)
- {
- if (nickname == "Player")
- {
- nickname += "_" + _id;
- }
- _nickname = nickname;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment