Advertisement
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 dataBase
- {
- class Program
- {
- static void Main(string[] args)
- {
- Database dataBase = new Database();
- do
- {
- Console.Clear();
- Console.WriteLine("Выберите действие\n 1 - Добавить игрока\n 2 - удалить игрока\n 3 - посмотреть список игроков\n 4 - забанить игрока\n 5 - разбанить игрока");
- switch (Console.ReadLine())
- {
- case "1":
- dataBase.AddPlayer();
- break;
- case "2":
- dataBase.DeletePlayer();
- break;
- case "3":
- dataBase.ShowPlayers();
- break;
- case "4":
- dataBase.BanPlayer();
- break;
- case "5":
- dataBase.UnBanPlayer();
- break;
- default:
- Console.WriteLine("Такого действия нет.");
- break;
- }
- Console.WriteLine("Для продолжения нажмите любую кнопку | Для выхода нажмите Escape");
- }
- while (Console.ReadKey().Key != ConsoleKey.Escape);
- }
- }
- class Player
- {
- private string _name;
- private int _lvl;
- private bool _isBanned;
- public Player(string name, int lvl)
- {
- _name = name;
- _lvl = lvl;
- }
- public void Ban()
- {
- _isBanned = true;
- }
- public void Unban()
- {
- _isBanned = false;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"Nickname: {_name} | Lvl: {_lvl} | Banned: {_isBanned}");
- }
- }
- class Database
- {
- private List<Player> _players;
- public Database()
- {
- _players = new List<Player>();
- }
- public void ShowPlayers()
- {
- int playerIndex = 1;
- foreach (Player player in _players)
- {
- Console.Write(playerIndex++ + ".");
- player.ShowInfo();
- }
- }
- public void AddPlayer()
- {
- Console.Write("Введите имя игрока: ");
- string playerName = Console.ReadLine();
- Console.WriteLine();
- Console.Write("Введите уровень игрока: ");
- Console.WriteLine();
- int number;
- bool isNumber;
- int playerLvl;
- playerLvl = GetNumber(out number);
- Player player = new Player(playerName, playerLvl);
- _players.Add(player);
- }
- public void DeletePlayer()
- {
- Console.WriteLine("Введите порядковый номер игрока, которого хотите удалить: ");
- if (TryGetPlayer(out Player player))
- {
- _players.Remove(player);
- }
- else
- {
- Console.WriteLine("Такого игрока нет");
- }
- }
- public void BanPlayer()
- {
- Console.WriteLine("Введите порядковый номер игрока, которого хотите забанить: ");
- if (TryGetPlayer(out Player player))
- {
- player.Ban();
- }
- else
- {
- Console.WriteLine("Такого игрока нет");
- }
- }
- public void UnBanPlayer()
- {
- Console.WriteLine("Введите порядковый номер игрока, которого хотите разбанить: ");
- if (TryGetPlayer(out Player player))
- {
- player.Unban();
- }
- else
- {
- Console.WriteLine("Такого игрока нет");
- }
- }
- public int GetNumber(out int number)
- {
- string playerIndex;
- do
- {
- playerIndex = Console.ReadLine();
- }
- while (!int.TryParse(playerIndex, out number));
- return number = Convert.ToInt32(playerIndex);
- }
- private bool TryGetPlayer(out Player player)
- {
- int playerIndex;
- playerIndex = GetNumber(out int number) - 1;
- if(playerIndex >= 0 && playerIndex < _players.Count)
- {
- player = _players.ElementAt(playerIndex);
- return true;
- }
- else
- {
- player = null;
- return false;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement