public List <Winnings> CheckPlayerWin(string[,] slots) { var winningLines = new List <Winnings>(); for (var payLines = 1; payLines <= 30; payLines++) //paylines { var winningPayLine = _win.GetWinningPayLine(payLines); foreach (var symbol in _symbols) //symbols { var matchCounter = 0; foreach (var lines in winningPayLine)//slot results base on payline { var currentSymbol = GetSymbol(slots, lines); if (currentSymbol == symbol || currentSymbol == "Wild") { matchCounter += 1; } else { break; } } if (matchCounter > 2) { winningLines.Add(new Winnings() { MatchLine = matchCounter, PayLine = payLines, Symbol = symbol }); } } } return(winningLines); }
public bool CheckIfPlayerHasWinningCombinations(string[,] slots, int playerId, bool cascaded, decimal betAmount, string gameId) { var winnerArrayDimensionList = new List <string>(); var temporaryWinnerArrayDimensionList = new List <string>(); for (var payLines = 1; payLines <= 30; payLines++) //paylines { var winningPayLine = _win.GetWinningPayLine(payLines); temporaryWinnerArrayDimensionList.Clear(); foreach (var symbol in _symbols) //symbols { var matchCounter = 0; temporaryWinnerArrayDimensionList.Clear(); foreach (var lines in winningPayLine)//slot results base on payline { var currentSymbol = GetSymbol(slots, lines, ref temporaryWinnerArrayDimensionList); if (currentSymbol == symbol || currentSymbol == "Wild") { matchCounter += 1; } else { break; } } if (matchCounter > 2) { winnerArrayDimensionList.AddRange(temporaryWinnerArrayDimensionList); //add the winning symbol to the list of array (as return later) CreditAndRecordWinningCombinations(matchCounter, symbol, betAmount, playerId, gameId, playerId); } } } if (!winnerArrayDimensionList.Any() && !cascaded) { _transactionHistory.AddTransactionHistory(betAmount, playerId, "Lose", gameId, 0, string.Empty); } CheckIfPlayerSpinHasFreeBonusSpin(slots, playerId); //If there's a winning symbol in slot //get the line(3) and wheel(5) (base on the array row and col) //remove the symbol in the array. RemoveSymbolsInTheWheelArray(winnerArrayDimensionList); return(winnerArrayDimensionList.Any()); }