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 GamersBD
- {
- class Program
- {
- static void Main(string[] args)
- {
- const int CommandAdd = 1;
- const int CommandDelete = 2;
- const int CommandPrintInfo = 3;
- const int CommandBan = 4;
- const int CommandUnban = 5;
- const int CommandExit = 6;
- bool isRunning = true;
- PlayersDatabase playersDatabase = new PlayersDatabase();
- Console.WriteLine($"{CommandAdd} Добавить игрока");
- Console.WriteLine($"{CommandDelete} Удалить игрока");
- Console.WriteLine($"{CommandPrintInfo} Вывести информацию о игроках");
- Console.WriteLine($"{CommandBan} Забанить игрока");
- Console.WriteLine($"{CommandUnban} Разбанить игрока");
- Console.WriteLine($"{CommandExit} Выйти из программы");
- while (isRunning)
- {
- Console.Write("Введите команду: ");
- int command = GetNumberFromUser();
- switch (command)
- {
- case CommandAdd:
- playersDatabase.AddPlayer();
- break;
- case CommandDelete:
- playersDatabase.DeletePlayer();
- break;
- case CommandPrintInfo:
- playersDatabase.PrintInfo();
- break;
- case CommandBan:
- playersDatabase.Ban();
- break;
- case CommandUnban:
- playersDatabase.Unban();
- break;
- case CommandExit:
- isRunning = false;
- break;
- }
- }
- }
- public static int GetNumberFromUser()
- {
- string userInput;
- int userNumber;
- bool isNumber = false;
- do
- {
- userInput = Console.ReadLine();
- isNumber = int.TryParse(userInput, out userNumber);
- }
- while (isNumber == false);
- return userNumber;
- }
- }
- class Player
- {
- private static int _nextNumber;
- private bool _isBanned;
- public Player(string nickName, int level = 1)
- {
- UniqueNumber = _nextNumber++;
- NickName = nickName;
- Level = level;
- _isBanned = false;
- }
- public int UniqueNumber { get; private set; }
- public string NickName { get; private set; }
- public int Level { get; private set; }
- public void PrintInfo()
- {
- Console.WriteLine($"Номер: {UniqueNumber}\tУровень {Level}\tНик {NickName}\t" + (_isBanned ? "забанен" : ""));
- }
- public void Ban()
- {
- _isBanned = true;
- }
- public void Unban()
- {
- _isBanned = false;
- }
- }
- class PlayersDatabase
- {
- private List<Player> _players;
- public PlayersDatabase()
- {
- _players = new List<Player>();
- }
- public void AddPlayer()
- {
- Console.WriteLine("Добавляем игрока");
- Console.WriteLine("Введите имя игрока");
- string name = Console.ReadLine();
- Console.WriteLine("Введите уровень игрока");
- int level = Program.GetNumberFromUser();
- Player newPlayer = new Player(name, level);
- _players.Add(newPlayer);
- Console.Write("Добавлен игрок ");
- newPlayer.PrintInfo();
- }
- public void Ban()
- {
- Console.WriteLine("Введите уникальный номер игрока, которого нужно забанить");
- bool isPlayerExist = TryGetPlayer(out Player player);
- if (isPlayerExist)
- {
- Console.WriteLine($"Баним игрока под номером {player.UniqueNumber}");
- player.Ban();
- }
- }
- public void Unban()
- {
- Console.WriteLine("Введите уникальный номер игрока, которого нужно разбанить");
- bool isPlayerExist = TryGetPlayer(out Player player);
- if (isPlayerExist)
- {
- Console.WriteLine($"Снимаем бан с игрока под номером {player.UniqueNumber}");
- player.Unban();
- }
- }
- public void DeletePlayer()
- {
- Console.WriteLine("Введите уникальный номер игрока, которого нужно удалить");
- bool isPlayerExist = TryGetPlayer(out Player player);
- if (isPlayerExist)
- {
- Console.WriteLine($"Удаляем игрока под номером {player.UniqueNumber}");
- _players.Remove(player);
- }
- }
- public void PrintInfo()
- {
- Console.WriteLine();
- Console.WriteLine("Информация о игроках:");
- for (int i = 0; i < _players.Count; i++)
- {
- _players[i].PrintInfo();
- }
- Console.WriteLine();
- }
- private bool TryGetPlayer(out Player player)
- {
- player = null;
- int playerNumber = Program.GetNumberFromUser();
- for (int i = 0; i < _players.Count; i++)
- {
- if (_players[i].UniqueNumber == playerNumber)
- {
- player = _players[i];
- return true;
- }
- }
- Console.WriteLine($"Игрок с номером {playerNumber} отсутствует в базе данных");
- return false;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement