Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
        }