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 Task40
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- int idPlayer = 0;
- bool isExit = false;
- string menu =
- "Добро пожаловать администратор в базе данных игроков. " +
- "\n\nУ вас в распоряжении есть несколько команд: " +
- "\nAdd - добавить игрока, по уникальному номеру;" +
- "\nDelete - удалить игрока, по уникальному номеру;" +
- "\nBan - забанить игрока, по уникальному номеру;" +
- "\nUnban - разбанить игрока, по уникальному номеру;" +
- "\nShow - показать всю информацию об игроках;" +
- "\nExit - выход из программы.\n";
- string requestCommand =
- "Введите команду: ";
- string commandNotFound =
- "Команда не найдена! Повторите попытку. ";
- string parting =
- "Завершение работы. До свидания. ";
- string inputKey =
- "Введите Enter для продолжения.";
- string userInput;
- DatabasePlayers databasePlayers = new DatabasePlayers();
- while (isExit == false)
- {
- Console.WriteLine(menu);
- Console.Write(requestCommand);
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case "Add":
- databasePlayers.Add(idPlayer);
- break;
- case "Delete":
- databasePlayers.Delete();
- break;
- case "Ban":
- databasePlayers.Ban();
- break;
- case "Unban":
- databasePlayers.UnBan();
- break;
- case "Show":
- databasePlayers.ShowAll();
- break;
- case "Exit":
- isExit = true;
- break;
- default:
- Console.WriteLine(commandNotFound);
- break;
- }
- idPlayer++;
- Console.WriteLine(inputKey);
- Console.ReadKey();
- Console.Clear();
- }
- Console.WriteLine(parting);
- }
- }
- class DatabasePlayers
- {
- private List<Player> _players = new List<Player>();
- public void ShowAll()
- {
- foreach (var player in _players)
- {
- player.ShowInfo();
- }
- }
- public void Add(int indexPlayer)
- {
- bool isBanned = false;
- string userInputName;
- int userInputLevel;
- string requestNamePlayer =
- "Введите имя игрока: ";
- string requestLevelPlayer =
- "Введите уровень игрока: ";
- Console.Write(requestNamePlayer);
- userInputName = Console.ReadLine();
- userInputLevel = GetInt(requestLevelPlayer);
- Player user = new Player(indexPlayer, userInputName, userInputLevel, isBanned);
- _players.Add(user);
- }
- public void Delete()
- {
- string requestIdPlayer =
- "Введите Id игрока, которого хотите удалить: ";
- bool resultSearchPlayer = false;
- int userInput;
- while (resultSearchPlayer == false)
- {
- userInput = GetInt(requestIdPlayer);
- resultSearchPlayer = TryGetPlayer(userInput, out Player player);
- if (resultSearchPlayer == true)
- {
- _players.Remove(player);
- }
- }
- }
- public void Ban()
- {
- string requestIdPlayer =
- "Введите Id игрока, которого хотите забанить: ";
- string playerIsBanned =
- "Игрок был забанен.";
- string playerBanned =
- "Игрок забанен.";
- bool resultSearchPlayer = false;
- int userInput;
- while (resultSearchPlayer == false)
- {
- userInput = GetInt(requestIdPlayer);
- resultSearchPlayer = TryGetPlayer(userInput, out Player player);
- if (resultSearchPlayer == true)
- {
- if (player.IsBanned == false)
- {
- player.Ban();
- Console.WriteLine(playerBanned);
- }
- else
- {
- Console.WriteLine(playerIsBanned);
- resultSearchPlayer = true;
- }
- }
- }
- }
- public void UnBan()
- {
- string requestIdPlayer =
- "Введите Id игрока, которого хотите забанить: ";
- string playerNotBanned =
- "Игрок был не забанен. ";
- string playerUnBanned =
- "Игрок разбанен. ";
- bool resultSearchPlayer = false;
- int userInput;
- while (resultSearchPlayer == false)
- {
- userInput = GetInt(requestIdPlayer);
- resultSearchPlayer = TryGetPlayer(userInput, out Player player);
- if (resultSearchPlayer == true)
- {
- if (player.IsBanned == true)
- {
- player.UnBan();
- Console.WriteLine(playerUnBanned);
- }
- else
- {
- Console.WriteLine(playerNotBanned);
- }
- }
- }
- }
- private int GetInt(string requestInputNumber)
- {
- string errorConversion = "Ошибка,вы вели не цифры! Попробуйте снова.";
- string userInput;
- bool resultConverted = false;
- int number = 0;
- while (resultConverted == false)
- {
- Console.Write(requestInputNumber);
- userInput = Console.ReadLine();
- resultConverted = int.TryParse(userInput, out int numberConvert);
- if (resultConverted != true)
- Console.WriteLine(errorConversion);
- else
- number = numberConvert;
- }
- return number;
- }
- private bool TryGetPlayer(int userInput, out Player user)
- {
- int idPlayer = 0;
- int defaultValue = 0;
- string defaultValueName = "nick";
- string errorSearchIdPlayer =
- "Игрока с данным id не обнаруженно. \n";
- string playerFound =
- "Игрок с данным id обнаружен. \n ";
- bool defaultBanStatus = false;
- user = new Player(defaultValue, defaultValueName, defaultValue, defaultBanStatus);
- foreach (var searchPlayer in _players)
- {
- if (user.Id == userInput)
- {
- user = _players[idPlayer];
- }
- idPlayer++;
- }
- if (user != null)
- {
- Console.WriteLine(playerFound);
- return true;
- }
- else
- {
- Console.WriteLine(errorSearchIdPlayer);
- return false;
- }
- }
- }
- class Player
- {
- private string _nickName;
- private int _level;
- public Player(int id, string nickName, int level, bool banStatus)
- {
- Id = id;
- _nickName = nickName;
- _level = level;
- IsBanned = banStatus;
- }
- public bool IsBanned { get; private set; }
- public int Id { get; private set; }
- public void Ban()
- {
- IsBanned = true;
- }
- public void UnBan()
- {
- IsBanned = false;
- }
- public void ShowInfo()
- {
- string banStatusConclusion;
- if (IsBanned)
- banStatusConclusion = "забанен";
- else
- banStatusConclusion = "не забанен";
- Console.WriteLine(
- "\nУникальный номер: " + Id +
- "\nНикнейм: " + _nickName +
- "\nЛевел: " + _level +
- "\nЗабанен?: " + banStatusConclusion +
- "\n=============================================");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement