Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp
- {
- class Program
- {
- static void Main(string[] args)
- {
- Menu menu = new Menu();
- }
- }
- }
- class Menu
- {
- const string CommandDeletePlayer = "1";
- const string CommandAddPlayer = "2";
- const string CommandBanOrUnBanPlayer = "3";
- const string CommandShowAllPlayers = "4";
- const string CommandExit = "5";
- public Menu()
- {
- Dictionary<int, Player> scrollOfPlayers = new();
- Database userInformation = new(scrollOfPlayers);
- bool isWork = true;
- while (isWork)
- {
- Console.WriteLine("\nВыберите пункт меню, для работы с базой данных:\n" +
- "1 - Удалить игрока\n" +
- "2 - Добавить игрока\n" +
- "3 - Забанить или разбанить игрока\n" +
- "4 - Показать всех игроков\n" +
- "5 - Выход из программы");
- Console.WriteLine("\nВведите число");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case "1":
- userInformation.DeletePlayer(scrollOfPlayers);
- break;
- case "2":
- userInformation.AddPlayer(scrollOfPlayers);
- break;
- case "3":
- userInformation.BanOrUnBanPlayer(scrollOfPlayers);
- break;
- case "4":
- userInformation.ShowAllPlayers(scrollOfPlayers);
- break;
- case "5":
- isWork = false;
- Console.WriteLine("До встречи!");
- break;
- default:
- ShowMessage();
- break;
- }
- }
- }
- public void ShowMessage()
- {
- Console.ForegroundColor = ConsoleColor.Red;
- Console.WriteLine("Внимательнее пожалуйста, вы не выбрали пункт меню!");
- Console.ResetColor();
- }
- }
- class Database
- {
- private Dictionary<int, Player> _scrollOfPlayersWithUniqueNumber = new();
- public Database(Dictionary<int, Player> scrollOfPlayersWithUniqueNumber)
- {
- _scrollOfPlayersWithUniqueNumber = scrollOfPlayersWithUniqueNumber;
- }
- public Dictionary<int, Player> AddPlayer(Dictionary<int, Player> playerInformation)
- {
- string numberWriteMessage = "Введите номер:";
- string LevelWriteMessage = "Введите уровень:";
- int uniqueNumber = 0;
- int level = 0;
- RecordData(numberWriteMessage, ref uniqueNumber);
- if (VerificationUserInput(playerInformation, uniqueNumber))
- {
- RecordData(LevelWriteMessage, ref level);
- Console.WriteLine("Введите имя:");
- string name = Console.ReadLine();
- bool isBan = false;
- Player newPlayer = new Player(level, name, isBan);
- playerInformation.Add(uniqueNumber, newPlayer);
- }
- return playerInformation;
- }
- public bool VerificationUserInput(Dictionary<int, Player> playerInformation, int uniqueNumber)
- {
- if (playerInformation.ContainsKey(uniqueNumber))
- {
- Console.WriteLine("Такой номер уже есть. Введите дугой.");
- return false;
- }
- return true;
- }
- public void RecordData(string text, ref int number)
- {
- Console.WriteLine(text);
- bool isWork = true;
- while (isWork)
- {
- string uniqueNumber = Console.ReadLine();
- if (int.TryParse(uniqueNumber, out number) == false || number < 0)
- {
- Console.WriteLine("Неверный ввод!");
- Console.WriteLine("Введите число еще раз");
- }
- else
- {
- isWork = false;
- }
- }
- }
- public void DeletePlayer(Dictionary<int, Player> playerInformation)
- {
- if (playerInformation.Count <= 0)
- {
- Console.WriteLine("Игроков не добавлено");
- }
- else
- {
- Console.WriteLine("Введите номер игрока для удаления:");
- string uniqueNumber = Console.ReadLine();
- if (int.TryParse(uniqueNumber, out int number) && number > 0)
- {
- CheckForPlayerPresence(playerInformation, number);
- }
- else
- {
- Console.WriteLine("Неправильный ввод.");
- }
- }
- }
- public void CheckForPlayerPresence(Dictionary<int, Player> playerInformation, int userInput)
- {
- if (playerInformation.ContainsKey(userInput) && playerInformation.TryGetValue(userInput, out Player player))
- {
- playerInformation.Remove(userInput);
- Console.WriteLine("Игрок удален");
- }
- else
- {
- Console.WriteLine("Такого игрока нет");
- }
- }
- public string ShowPlayerStatus(Player player)
- {
- string ban = "Забанен.";
- string UnBan = "Не забанен.";
- if (player.IsBan == false)
- {
- return UnBan;
- }
- else
- {
- return ban;
- }
- }
- public void BanOrUnBanPlayer(Dictionary<int, Player> playerInformation)
- {
- string ban = "1";
- string unBan = "2";
- Console.WriteLine("Введите номер игрока для изменения статуса:");
- int uniqueNumber = Convert.ToInt32(Console.ReadLine());
- if (playerInformation.ContainsKey(uniqueNumber) && playerInformation.TryGetValue(uniqueNumber, out Player player))
- {
- Console.WriteLine($"Текущий статус игрока - {ShowPlayerStatus(player)}.");
- Console.WriteLine($"Что делаем дальше? Забанить - {ban}, разбанить - {unBan}.");
- string userInput = Console.ReadLine();
- if (userInput == ban)
- {
- player.BanPlayer();
- Console.WriteLine("Игрок забанен.");
- }
- else
- {
- player.UnBanPlayer();
- Console.WriteLine("Игрок разбанен.");
- }
- }
- else
- {
- Console.WriteLine("Такого игрока нет.");
- }
- }
- public void ShowAllPlayers(Dictionary<int, Player> uniqueNumberOfPlayer)
- {
- if (uniqueNumberOfPlayer.Count <= 0)
- {
- Console.WriteLine("Игроки отсутствуют.");
- }
- else
- {
- foreach (var player in uniqueNumberOfPlayer)
- {
- uniqueNumberOfPlayer.TryGetValue(player.Key, out Player playerStatus);
- Console.WriteLine($"\n{player.Key}. {player.Value.Name}, уровень - {player.Value.Level}. {ShowPlayerStatus(playerStatus)}.");
- }
- }
- }
- }
- class Player
- {
- public Player(int level, string name, bool isBanned)
- {
- Name = name;
- Level = level;
- IsBan = isBanned;
- }
- public string Name { get; private set; }
- public int Level { get; private set; }
- public bool IsBan { get; private set; }
- public void BanPlayer()
- {
- IsBan = true;
- }
- public void UnBanPlayer()
- {
- IsBan = false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement