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 BDPlayers
- {
- class Program
- {
- static void Main(string[] args)
- {
- Database database = new Database();
- database.Work();
- }
- }
- class Player
- {
- public string Nickname { get; private set; }
- public int Index { get; private set; }
- public int Level { get; private set; }
- public bool IsBanned { get; private set; }
- public Player()
- {
- Nickname = "Без имени";
- Index = 0;
- Level = 0;
- IsBanned = false;
- }
- public Player(string nickname, int index, int lvl, bool isBannded)
- {
- Nickname = nickname;
- Index = index;
- Level = lvl;
- IsBanned = isBannded;
- }
- public void Ban()
- {
- IsBanned = true;
- }
- public void Unban()
- {
- IsBanned = false;
- }
- }
- class Database
- {
- private List<Player> _players = new List<Player>()
- {
- new Player("Io", 1, 15, true),
- new Player("V", 2, 100, false)
- };
- public void Work()
- {
- bool isRun = true;
- while (isRun)
- {
- Console.WriteLine("\n");
- Console.WriteLine("[1] - создать игрока\n" +
- "[2] - показать всех игроков\n" +
- "[3] - забанить игрока\n" +
- "[4] - разбанить игрока\n" +
- "[5] - удалить игрока\n" +
- "[6] - выход");
- Console.Write("Ввод: ");
- switch (Console.ReadLine())
- {
- case "1":
- CreatePlayer();
- break;
- case "2":
- ShowPlayers();
- break;
- case "3":
- BanPlayer();
- break;
- case "4":
- UnBanPlayer();
- break;
- case "5":
- DeletePlayer();
- break;
- case "6":
- isRun = false;
- break;
- default:
- Console.WriteLine("Ошибка!");
- break;
- }
- }
- }
- private void CreatePlayer()
- {
- string name;
- bool isBanned;
- Console.Write("Введите имя: ");
- name = Console.ReadLine();
- if (IsInputVerified("Введите уровень: ", 0, 100, out int lvl) == false)
- {
- Console.Write("Ввод неправильный!");
- return;
- }
- ++lvl;
- Console.Write("Игрок в бане? Да - [Y] или Нет - [N]. Ввод: ");
- string userInput = Console.ReadLine();
- if (userInput == "Y")
- isBanned = true;
- else
- isBanned = false;
- Player player = new Player(name, _players.Count + 1, lvl, isBanned);
- _players.Add(player);
- }
- private void ShowPlayers()
- {
- if (IsDataBaseEmpty())
- {
- return;
- }
- foreach (var player in _players)
- {
- Console.Write($"{player.Index}) '{player.Nickname}' {player.Level}lvl. ");
- if (player.IsBanned)
- Console.WriteLine("Игрок в бане");
- else
- Console.WriteLine("Игрок не в бане");
- }
- }
- private void BanPlayer()
- {
- if (IsDataBaseEmpty())
- return;
- if (IsInputVerified("Введите номер: ", 1, _players.Count, out int userIndex))
- {
- if (_players.ElementAt(userIndex).IsBanned == true)
- {
- Console.WriteLine("Игрока забанить нельзя!");
- return;
- }
- _players.ElementAt(userIndex).Ban();
- }
- }
- private void UnBanPlayer()
- {
- if (IsDataBaseEmpty())
- return;
- if (IsInputVerified("Введите номер: ", 1, _players.Count, out int userIndex))
- {
- if (_players.ElementAt(userIndex).IsBanned == false)
- {
- Console.WriteLine("Игрока забанить нельзя!");
- return;
- }
- _players.ElementAt(userIndex).Unban();
- }
- }
- private void DeletePlayer()
- {
- if (IsDataBaseEmpty())
- return;
- if (IsInputVerified("Введите номер: ", 1, _players.Count, out int userIndex))
- _players.RemoveAt(userIndex);
- }
- private bool IsInputVerified(string message, int min, int max, out int userInput)
- {
- Console.WriteLine(message + $"Диапазон: от {min} до {max}");
- if (int.TryParse(Console.ReadLine(), out userInput) == false || (userInput > max || userInput < min))
- {
- Console.WriteLine("Некорректный ввод!");
- return false;
- }
- --userInput;
- return true;
- }
- private bool IsDataBaseEmpty()
- {
- if (_players.Count == 0)
- {
- Console.WriteLine("База данных пуста!");
- return true;
- }
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement