Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- class Program
- {
- static void Main(string[] args)
- {
- Database playerBase = new Database();
- playerBase.Work();
- }
- }
- class Database
- {
- private long _id;
- private List<Player> _players = new List<Player>();
- public Database()
- {
- _id = 0;
- }
- public void Work()
- {
- const int ShowInfo = 1;
- const int Delete = 2;
- const int Ban = 3;
- const int UnBan = 4;
- const int AddNewPlayer = 5;
- const int Exit = 9;
- bool isWork = true;
- while (isWork)
- {
- string userInput;
- Console.WriteLine($"База данных игроков. \nВведите команду: \n{ShowInfo} - Вывод БД в консоль, \n{Delete} - Удалить игрока, " +
- $"\n{Ban} - Забанить игрока, \n{UnBan} - Снять бан игрока,\n{AddNewPlayer} - Добавить игрока в БД,\n{Exit} - Выход.");
- userInput = Console.ReadLine();
- int.TryParse(userInput, out int result);
- switch (result)
- {
- case ShowInfo:
- this.ShowInfo();
- break;
- case Delete:
- this.Delete();
- break;
- case Ban:
- this.Ban();
- break;
- case UnBan:
- this.Unban();
- break;
- case AddNewPlayer:
- AddPlayer();
- break;
- case Exit:
- isWork = false;
- break;
- default:
- Console.WriteLine("\aТак команды нет.");
- break;
- }
- Console.WriteLine("Нажмите любую клавишу для продолжения.");
- Console.ReadKey();
- Console.Clear();
- }
- }
- private long GetId()
- {
- _id++;
- return _id;
- }
- private void AddPlayer()
- {
- string nickname;
- Console.WriteLine("Вы выбрали пункт меню \"Добавить игрока\".");
- Console.Write("Введите NICKNAME нового игрока:");
- nickname = Console.ReadLine();
- if (nickname != null)
- _players.Add(new Player(GetId(), nickname));
- else
- Console.WriteLine("\aNICKNAME должен содержать пустую строку.");
- }
- private void Ban()
- {
- Console.WriteLine("Вы выбрали пункт меню \"Забанить игрока\".");
- TryGetPlayer(out Player player);
- player?.Ban();
- }
- private void Unban()
- {
- Console.WriteLine("Вы выбрали пункт меню \"Снять бан игрока\".");
- TryGetPlayer(out Player player);
- player?.Unban();
- }
- private void Delete()
- {
- const int Yes = 1;
- const int No = 2;
- string userInput;
- Console.WriteLine("Вы выбрали пункт меню \"Удалить игрока\".");
- TryGetPlayer(out Player player);
- if (player != null)
- {
- Console.Write($"Вы действительно хотите безвозвратно удалить игрока {player.Nickname}? Это действие безвозвратно. {Yes} - Да, {No} - Нет.");
- userInput = Console.ReadLine();
- int.TryParse(userInput, out int result);
- if (result != 0 && result == 1)
- {
- _players.Remove(player);
- Console.WriteLine("Выполнено успешно.");
- }
- else
- Console.WriteLine($"Удаление игрока {player.Nickname} отменено.");
- }
- }
- private void ShowInfo()
- {
- Console.WriteLine();
- for (int i = 0; i < _players.Count; i++)
- {
- _players[i].ShowInfo();
- }
- Console.WriteLine();
- }
- private void TryGetPlayer(out Player player)
- {
- bool isFoundPlayer = false;
- player = null;
- string userInput;
- Console.Write($"Введите id игрока:");
- userInput = Console.ReadLine();
- int.TryParse(userInput, out int id);
- for (int i = 0; i < _players.Count; i++)
- {
- if (id == _players[i].Id)
- {
- isFoundPlayer = true;
- player = _players[i];
- i = _players.Count;
- }
- }
- if (isFoundPlayer)
- {
- Console.WriteLine($"Операция завершена успешно.");
- }
- else
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("\aИгрока с id равным " + id + " в базе данных не найдено.");
- Console.ForegroundColor = ConsoleColor.White;
- }
- }
- class Player
- {
- public long Id { get; private set; }
- public string Nickname { get; private set; }
- public bool IsBanned { get; private set; }
- public int Level { get; private set; }
- public Player(long id, string nickname)
- {
- Id = id;
- Nickname = nickname;
- IsBanned = false;
- Level = 0;
- }
- public void Ban()
- {
- IsBanned = true;
- }
- public void Unban()
- {
- IsBanned = false;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"Id - {Id}, Nickname - {Nickname}, IsBanned - {IsBanned}, Level - {Level}");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement