private IReadOnlyList <IPlayer> CreatePlayers()
        {
            var figureTypesSet = ((FigureType[])Enum.GetValues(typeof(FigureType))).ToList();

            int playersCount;

            do
            {
                playersCount = _inputProvider.GetNumber("Set players count",
                                                        "Incorrect players count, it must be a number. Try again.");
                if (playersCount > 1 && playersCount <= figureTypesSet.Count)
                {
                    break;
                }

                _console.WriteLine($"Max count of players {figureTypesSet.Count}.");
            } while (true);

            var players = new List <IPlayer>(playersCount);

            for (var playerNum = 1; playerNum <= playersCount; playerNum++)
            {
                _console.WriteLine($"{playerNum} player:");
                var player = _playerRegisterManager.Register(figureTypesSet);
                figureTypesSet.Remove(player.FigureType);
                players.Add(player);
            }

            return(players);
        }
        public (int row, int col) GetCellCoordinates(IPlayer player)
        {
            _console.WriteLine($"Current player: {player.Name} {player.LastName}. Figure: {player.FigureType}");
            (int row, int col)coordinates;
            coordinates.row = _inputProvider.GetNumber("Input row number:");
            coordinates.col = _inputProvider.GetNumber("Input column number:");

            return(coordinates);
        }
 private FigureType GetFigureType(IReadOnlyList <FigureType> availableFigureTypes)
 {
     _console.WriteLine("Allowed figure types:");
     availableFigureTypes.ForEach(
         (allowedFigureType, index) => _console.WriteLine($"{index + 1}) {allowedFigureType.ToString()}"));
     do
     {
         var figureNumber = _inputProvider.GetNumber("Input number of chosen figure.");
         if (figureNumber >= 1 && figureNumber <= availableFigureTypes.Count)
         {
             return(availableFigureTypes[figureNumber - 1]);
         }
         _console.WriteLine("There is not figure type with that name.");
     } while (true);
 }