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); }