public SlotMachineSpinResultDto Spin(decimal stakeAmount) { var rowsOfSymbols = new List <List <Symbol> >(); double coefficient = 0; ISymbolCoefficientProvider symbolCoefficientProvider = _symbolCoefficientProviderFactory.Create(); for (int i = 0; i < Rows; i++) { List <Symbol> symbols = _randomSymbolGenerator.Generate(NumberOfSymbolsOnARow); rowsOfSymbols.Add(symbols); coefficient += symbolCoefficientProvider.GetCoefficient(symbols); } decimal winAmount = (decimal)coefficient * stakeAmount; _player.Balance += winAmount; return(new SlotMachineSpinResultDto { PlayerBalance = _player.Balance, Symbols = rowsOfSymbols, WinAmount = winAmount, IsSuccess = true }); }
public void SetSuccessor(ISymbolCoefficientProvider symbolCoefficientProvider) { _successor = symbolCoefficientProvider; }