Итерация игровых линий в игре с джекпотом - PullRequest
0 голосов
/ 19 апреля 2020

У меня проблема с расчетом выплат игрового автомата! я работаю над единством и c#. так что я сделал, я установил кучу payLines и преобразовал каждый из них в одну строку, а затем pu sh их в три / дерево.

установить линии выплаты в tr ie image

тогда я начинаю повторять каждую вероятность, но кажется, что это не работает с моим кодом. это мой код, и я буду признателен за любую помощь.

public enum Types
{
    Red,Orange,Blue,Heart,Diamond,Yellow,Green,Energy
}

public static class GameExtension
{
    public static Types[,] resultMatrix;

private static string[,] GetMatrixValues(int yIndex)
        {
            var result = new string[5,3];
            var targetType = resultMatrix[0, yIndex];
            for (var y = 0; y < 3; y++)
            {
                for (var x = 0; x < 5; x++)
                {
                    result[x,y] = resultMatrix[x, y] == targetType ? (y + 1).ToString() : "0";
                }
            }
            return result;
        }

public static void CheckMatchingPayLine()
        {
            for (var y = 0; y < 3; y++)
            {
                var matrixValues = GetMatrixValues(y);
                var start = matrixValues[0,y];
                if(Prefix(start).parent == null) continue;

                    var matchedPayLines = new List<string>() { start,start,start };
                    for (var x = 1; x < 5; x++)
                    {
                        var nextColumn = new List<string>()
                        {
                            {matrixValues[x,0]},
                            {matrixValues[x,1]},
                            {matrixValues[x,2]}
                        };
                        nextColumn.RemoveAll(v => v == "0");

                        if (nextColumn.Count == 0) break;

                        var counter = 0;
                        while (nextColumn.Count > 0)
                        {
                            if (Prefix(matchedPayLines[counter] + nextColumn[0]).depth == matchedPayLines[counter].Length)
                            {
                                matchedPayLines[counter] = matchedPayLines[counter] + nextColumn[0];
                                counter++;
                            }
                            nextColumn.RemoveAt(0);
                        }
                    }
            }
        }
}

здесь объяснение функции GetMatrixValues ​​(). Изображение GetMatrixValues ​​

...