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 База_данных_игроков
- {
- class Program
- {
- static void Main(string[] args)
- {
- Database database = new Database();
- bool IsWorks = true;
- while (IsWorks)
- {
- Console.WriteLine("Выберите необходимое действие:\n1) Показать базу данных;\n2) Добавить игрока в базу данных;\n3) Удалить игрока с базы данных;\n4) Забанить игрока;\n5) Разбанить игрока;\n6) Выйти из программы.");
- switch (Console.ReadLine())
- {
- case "1":
- database.ShowInfo();
- break;
- case "2":
- database.AddPlayer();
- break;
- case "3":
- database.DeletePlayer();
- break;
- case "4":
- database.BanPlayer();
- break;
- case "5":
- database.UnbanPlayer();
- break;
- case "6":
- Console.WriteLine("Выход из программы");
- IsWorks = false;
- break;
- default:
- Console.WriteLine("Данная команда не найдена, повторите ввод");
- break;
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Database
- {
- private List<Player> _players = new List<Player>();
- private int _valueEnteredByUser;
- private bool _performOperation;
- public void AddPlayer()
- {
- Console.WriteLine("Введите ник, а затем уровень игрока:");
- _players.Add(new Player(Console.ReadLine(), CheckEnteredValue()));
- Console.WriteLine("Операция выполнена.");
- }
- public void DeletePlayer()
- {
- Console.Write("Введите номер игрока, которого хотите удалить с базы данных: ");
- _valueEnteredByUser = CheckEnteredValue();
- CheckPlayerAvailability();
- if (_performOperation)
- {
- _players.RemoveAt(_valueEnteredByUser - 1);
- _performOperation = false;
- }
- else
- {
- Console.WriteLine("Невалидные данные, операция прервана.");
- }
- }
- public void BanPlayer()
- {
- Console.Write("Введите номер игрока, которого хотите забанить: ");
- _valueEnteredByUser = CheckEnteredValue();
- CheckPlayerAvailability();
- if (_performOperation)
- {
- _players[_valueEnteredByUser - 1].Ban();
- _performOperation = false;
- }
- else
- {
- Console.WriteLine("Невалидные данные, операция прервана.");
- }
- }
- public void UnbanPlayer()
- {
- Console.Write("Введите номер игрока, которого хотите раз разбанить: ");
- _valueEnteredByUser = CheckEnteredValue();
- CheckPlayerAvailability();
- if (_performOperation)
- {
- _players[_valueEnteredByUser - 1].UnBan();
- _performOperation = false;
- }
- else
- {
- Console.WriteLine("Невалидные данные, операция прервана.");
- }
- }
- public void ShowInfo()
- {
- if (_players.Count > 0)
- {
- Console.WriteLine("База данных:");
- for (int i = 0; i < _players.Count; i++)
- {
- Console.WriteLine((i + 1) + ")Ник: " + _players[i].Nickname + " | Уровень:" + _players[i].Level + " | Бан: " + _players[i].IsBanned);
- }
- }
- else
- {
- Console.Write("База данных пуста");
- }
- }
- private int CheckEnteredValue()
- {
- if (Int32.TryParse(Console.ReadLine(), out int levelOutput)) { }
- else
- {
- Console.WriteLine("Невалидные данные, операция прервана.");
- }
- return levelOutput;
- }
- private void CheckPlayerAvailability()
- {
- if (_valueEnteredByUser != 0 && _valueEnteredByUser < _players.Count && 0 < _valueEnteredByUser)
- {
- _performOperation = true;
- }
- }
- }
- class Player
- {
- public string Nickname { get; private set; }
- public int Level { get; private set; }
- public bool IsBanned { get; private set; }
- public Player(string nickname, int level)
- {
- Nickname = nickname;
- Level = level;
- IsBanned = false;
- }
- public void Ban()
- {
- IsBanned = true;
- }
- public void UnBan()
- {
- IsBanned = false;
- }
- }
- }
Add Comment
Please, Sign In to add comment