private FieldTypes[][] GenerateBaseTable(int rows, int columns, int mineCount) { var gameTable = new FieldTypes[rows][]; var minedFields = Enumerable .Range(0, rows) .Select(row => Enumerable.Range(0, columns).Select(col => new { Row = row, Column = col })) .SelectMany(pairs => pairs) .Select(pair => new { pair.Row, pair.Column, Order = _randomNumberProvider.GetRandomNumber() }) .OrderBy(pairWithOrder => pairWithOrder.Order) .Take(mineCount) .ToList(); for (var row = 0; row < rows; ++row) { gameTable[row] = new FieldTypes[columns]; for (var col = 0; col < columns; ++col) { gameTable[row][col] = FieldTypes.Empty; } } foreach (var minedField in minedFields) { gameTable[minedField.Row][minedField.Column] = FieldTypes.Mined; } return(gameTable); }
private void MakeComputerChoice() { _computerNumber = _randomNumberProvider.GetRandomNumber(); }
public Players SelectRandomPlayer() { return(_randomNumberProvider.GetRandomNumber() % 2 == 0 ? Players.Player1 : Players.Player2); }