/// <summary>
        /// 开奖判断
        /// </summary>
        /// <param name="rxdswz">任选单式位置</param>
        /// <returns></returns>
        public static int isWin(int BetPlayTypeCode, string betNum, List <int> rxdswz, List <int> openCode, List <int> h4, List <int> h3, List <int> z3, List <int> q3, List <int> h2, List <int> q2, int dan, int da, int bjh, List <ZXLB> zxlbList, out decimal BackMoney)
        {
            if (TSHPlayId.Contains(BetPlayTypeCode))
            {
                betNum = MyTool.ChangeBetNumTSH(betNum);
            }
            int winTimes = 0;

            BackMoney = 0;
            var b1 = new List <List <int> >();//投注号

            //if (BetPlayTypeCode == 1)
            //{

            //}
            //else
            if (!LotteryInfo_SSC.LpList().FirstOrDefault(n => n.BetPlayTypeCode == BetPlayTypeCode).LotteryPlayName.Contains("单式"))
            {
                //b1 = betNum.Split('|').Select(
                //        n => n.Split(' ').Select(w => Convert.ToInt32(w)).ToList()
                //        ).ToList();
                if (betNum.IndexOf('|') > -1)
                {
                    foreach (var item in betNum.Split('|'))
                    {
                        if (item.Length > 0)
                        {
                            b1.Add(item.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
                        }
                        else
                        {
                            b1.Add(null);
                        }
                    }
                }
                else
                {
                    b1.Add(betNum.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
                }
            }
            switch (BetPlayTypeCode)
            {
                #region 定位胆
            case 1:                                    //定位胆
                rxzxfs(b1, out winTimes, openCode, 1); //任选1中1
                break;

                #endregion
                #region 五星
            case 2:    //五星直选复式
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) && b1[2].Contains(openCode[2]) && b1[3].Contains(openCode[3]) && b1[4].Contains(openCode[4]) ? 1 : 0;
                break;

            case 3:    //五星直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}{2}{3}{4}", openCode[0], openCode[1], openCode[2], openCode[3], openCode[4])) ? 1 : 0;
                break;

            case 4:    //五星直选组合
                Zxzh(BetPlayTypeCode, b1, out winTimes, out BackMoney, openCode);
                break;

            case 5:    //五星组选120(全不同号)
                if (bjh == 120)
                {
                    winTimes = zxpd(zxlbList, 5, 0, 1, 0, b1[0], null) ? 1 : 0;
                }
                break;

            case 6:    //五星组选60(一对)
                if (bjh == 60)
                {
                    winTimes = zxpd(zxlbList, 2, 3, 2, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 7:    //五星组选30(两对)
                if (bjh == 30)
                {
                    winTimes = zxpd(zxlbList, 4, 1, 2, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 8:    //五星组选20(三条)
                if (bjh == 20)
                {
                    winTimes = zxpd(zxlbList, 3, 2, 3, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 9:    //五星组选10(三带二)
                if (bjh == 10)
                {
                    winTimes = zxpd(zxlbList, 3, 2, 3, 2, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 10:    //五星组选5(四条)
                if (bjh == 5)
                {
                    winTimes = zxpd(zxlbList, 4, 1, 4, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 11:    //五星一帆风顺
            case 12:    //五星好事成双
            case 13:    //五星三星报喜
            case 14:    //五星四季发财
                winTimes = wxts(b1, zxlbList, BetPlayTypeCode - 10);
                break;

                #endregion
                #region 四星
            case 15:    //四星直选复式
                winTimes = b1[0].Contains(openCode[1]) && b1[1].Contains(openCode[2]) && b1[2].Contains(openCode[3]) && b1[3].Contains(openCode[4]) ? 1 : 0;
                break;

            case 16:    //四星直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}{2}{3}", openCode[1], openCode[2], openCode[3], openCode[4])) ? 1 : 0;
                break;

            case 17:    //四星直选组合
                Zxzh(BetPlayTypeCode, b1, out winTimes, out BackMoney, h4);
                break;

            case 18:    //四星组选24(全不同号)
                if (LotteryPlayArithmetic.pd(h4, out zxlbList) == 24)
                {
                    winTimes = zxpd(zxlbList, 4, 0, 1, 0, b1[0], null) ? 1 : 0;
                }
                break;

            case 19:    //四星组选12(一对)
                if (LotteryPlayArithmetic.pd(h4, out zxlbList) == 12)
                {
                    winTimes = zxpd(zxlbList, 2, 2, 2, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

            case 20:    //四星组选6(两对)
                if (LotteryPlayArithmetic.pd(h4, out zxlbList) == 6)
                {
                    winTimes = zxpd(zxlbList, 4, 0, 2, 0, b1[0], null) ? 1 : 0;
                }
                break;

            case 21:    //四星组选4(三条)
                if (LotteryPlayArithmetic.pd(h4, out zxlbList) == 4)
                {
                    winTimes = zxpd(zxlbList, 3, 1, 3, 1, b1[0], b1[1]) ? 1 : 0;
                }
                break;

                #endregion
                #region 百家
            case 22:    //百家重复号
                foreach (var item in b1[0])
                {
                    if (bjh >= 0)
                    {
                        switch (item)
                        {
                        case 120:        //单号
                            if (bjh == item)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;

                        case 60:        //一对
                            if (bjh <= item)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;

                        case 30:        //两对
                            if (bjh <= item && bjh != 20)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;

                        case 20:        //三条
                            if (bjh <= item)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;

                        case 10:        //三带二
                            if (bjh <= item && bjh != 5)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;

                        case 5:        //四条
                            if (bjh <= item)
                            {
                                winTimes++;
                            }
                            BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[item];
                            break;
                        }
                    }
                }
                break;

            case 23:    //百家顺子号
                if (bjh == 120)
                {
                    winTimes = 1;
                    openCode = openCode.OrderBy(n => n).ToList();
                    for (int i = 1; i < openCode.Count; i++)
                    {
                        if (openCode[i] - openCode[i - 1] != 1)
                        {
                            winTimes = 0;
                            break;
                        }
                    }
                }
                break;

            case 24:    //百家单双号
                if (b1[0].Contains(dan))
                {
                    winTimes = 1; BackMoney = LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[dan];
                }
                break;

            case 25:    //百家大小号
                if (b1[0].Contains(da))
                {
                    winTimes = 1; BackMoney = LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[da];
                }
                break;

                #endregion
                #region 后三
            case 26:    //后三直选复式
                winTimes = b1[0].Contains(openCode[2]) && b1[1].Contains(openCode[3]) && b1[2].Contains(openCode[4]) ? 1 : 0;
                break;

            case 27:    //后三直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}{2}", openCode[2], openCode[3], openCode[4])) ? 1 : 0;
                break;

            case 28:    //后三直选组合
                Zxzh(BetPlayTypeCode, b1, out winTimes, out BackMoney, h3);
                break;

            case 29:    //后三直选和值
                winTimes = b1[0].Contains(openCode[2] + openCode[3] + openCode[4]) ? 1 : 0;
                break;

            case 30:    //后三直选跨度
                winTimes = b1[0].Contains(h3.Max() - h3.Min()) ? 1 : 0;
                break;

            case 31:    //后三组三复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 3, 2, h3);
                break;

            case 32:    //后三组三单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 3, h3);
                break;

            case 33:    //后三组六复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 6, 3, h3);
                break;

            case 34:    //后三组六单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 6, h3);
                break;

            case 35:    //后三混合组选
                LotteryPlayArithmetic.hshhzx(BetPlayTypeCode, betNum, zxlbList, out winTimes, out BackMoney, h3);
                break;

            case 36:    //后三组选和值
                LotteryPlayArithmetic.hszxhz(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, h3);
                break;

            case 37:    //后三组选包胆
                hszxbd(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, h3);
                break;

            case 38:    //后三和值尾数
                winTimes = b1[0].Contains((openCode[2] + openCode[3] + openCode[4]) % 10) ? 1 : 0;
                break;

            case 39:    //后三特殊号
                hstsh(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, h3);
                break;

                #endregion
                #region 中三
            case 40:    //中三直选复式
                winTimes = b1[0].Contains(openCode[1]) && b1[1].Contains(openCode[2]) && b1[2].Contains(openCode[3]) ? 1 : 0;
                break;

            case 41:    //中三直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}{2}", openCode[1], openCode[2], openCode[3])) ? 1 : 0;
                break;

            case 42:    //中三直选组合
                Zxzh(BetPlayTypeCode, b1, out winTimes, out BackMoney, z3);
                break;

            case 43:    //中三直选和值
                winTimes = b1[0].Contains(openCode[1] + openCode[2] + openCode[3]) ? 1 : 0;
                break;

            case 44:    //中三直选跨度
                winTimes = b1[0].Contains(z3.Max() - z3.Min()) ? 1 : 0;
                break;

            case 45:    //中三组三复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 3, 2, z3);
                break;

            case 46:    //中三组三单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 3, z3);
                break;

            case 47:    //中三组六复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 6, 3, z3);
                break;

            case 48:    //中三组六单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 6, z3);
                break;

            case 49:    //中三混合组选
                LotteryPlayArithmetic.hshhzx(BetPlayTypeCode, betNum, zxlbList, out winTimes, out BackMoney, z3);
                break;

            case 50:    //中三组选和值
                LotteryPlayArithmetic.hszxhz(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, z3);
                break;

            case 51:    //中三组选包胆
                hszxbd(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, z3);
                break;

            case 52:    //中三和值尾数
                winTimes = b1[0].Contains((openCode[1] + openCode[2] + openCode[3]) % 10) ? 1 : 0;
                break;

            case 53:    //中三特殊号
                hstsh(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, z3);
                break;

                #endregion
                #region 前三
            case 54:    //前三直选复式
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) && b1[2].Contains(openCode[2]) ? 1 : 0;
                break;

            case 55:    //前三直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}{2}", openCode[0], openCode[1], openCode[2])) ? 1 : 0;
                break;

            case 56:    //前三直选组合
                Zxzh(BetPlayTypeCode, b1, out winTimes, out BackMoney, q3);
                break;

            case 57:    //前三直选和值
                winTimes = b1[0].Contains(openCode[0] + openCode[1] + openCode[2]) ? 1 : 0;
                break;

            case 58:    //前三直选跨度
                winTimes = b1[0].Contains(q3.Max() - q3.Min()) ? 1 : 0;
                break;

            case 59:    //前三组三复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 3, 2, q3);
                break;

            case 60:    //前三组三单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 3, q3);
                break;

            case 61:    //前三组六复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 6, 3, q3);
                break;

            case 62:    //前三组六单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 6, q3);
                break;

            case 63:    //前三混合组选
                LotteryPlayArithmetic.hshhzx(BetPlayTypeCode, betNum, zxlbList, out winTimes, out BackMoney, q3);
                break;

            case 64:    //前三组选和值
                LotteryPlayArithmetic.hszxhz(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, q3);
                break;

            case 65:    //前三组选包胆
                hszxbd(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, q3);
                break;

            case 66:    //前三和值尾数
                winTimes = b1[0].Contains((openCode[0] + openCode[1] + openCode[2]) % 10) ? 1 : 0;
                break;

            case 67:    //前三特殊号
                hstsh(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, q3);
                break;

                #endregion
                #region 后二
            case 68:    //后二直选复式
                winTimes = b1[0].Contains(openCode[3]) && b1[1].Contains(openCode[4]) ? 1 : 0;
                break;

            case 69:    //后二直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}", openCode[3], openCode[4])) ? 1 : 0;
                break;

            case 70:    //后二直选和值
                winTimes = b1[0].Contains(openCode[3] + openCode[4]) ? 1 : 0;
                break;

            case 71:    //后二直选跨度
                winTimes = b1[0].Contains(Math.Abs(openCode[3] - openCode[4])) ? 1 : 0;
                break;

            case 72:    //后二组选复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 1, 2, h2);
                break;

            case 73:    //后二组选单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 1, h2);
                break;

            case 74:    //后二组选和值
                h2zxhz(b1, out winTimes, h2);
                break;

            case 75:    //后二组选包胆
                h2zxbd(b1, out winTimes, h2);
                break;

                #endregion
                #region 前二
            case 76:    //前二直选复式
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) ? 1 : 0;
                break;

            case 77:    //前二直选单式
                winTimes = betNum.Contains(string.Format("{0}{1}", openCode[0], openCode[1])) ? 1 : 0;
                break;

            case 78:    //前二直选和值
                winTimes = b1[0].Contains(openCode[0] + openCode[1]) ? 1 : 0;
                break;

            case 79:    //前二直选跨度
                winTimes = b1[0].Contains(Math.Abs(openCode[0] - openCode[1])) ? 1 : 0;
                break;

            case 80:    //前二组选复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 1, 2, q2);
                break;

            case 81:    //前二组选单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 1, q2);
                break;

            case 82:    //前二组选和值
                h2zxhz(b1, out winTimes, q2);
                break;

            case 83:    //前二组选包胆
                h2zxbd(b1, out winTimes, q2);
                break;

                #endregion
                #region  定位
            case 84:    //后三一码
                winTimes = LotteryPlayArithmetic.bdw(b1, 1, h3);
                break;

            case 85:    //前三一码
                winTimes = LotteryPlayArithmetic.bdw(b1, 1, q3);
                break;

            case 86:    //后三二码
                winTimes = LotteryPlayArithmetic.bdw(b1, 2, h3);
                break;

            case 87:    //前三二码
                winTimes = LotteryPlayArithmetic.bdw(b1, 2, q3);
                break;

            case 88:    //四星一码
                winTimes = LotteryPlayArithmetic.bdw(b1, 1, h4);
                break;

            case 89:    //四星二码
                winTimes = LotteryPlayArithmetic.bdw(b1, 2, h4);
                break;

            case 90:    //五星二码
                winTimes = LotteryPlayArithmetic.bdw(b1, 2, openCode);
                break;

            case 91:    //五星三码
                winTimes = LotteryPlayArithmetic.bdw(b1, 3, openCode);
                break;

                #endregion
                #region 大(6)小(5)单(1)双(0)
            case 92:    //前二大小单双
                winTimes = LotteryPlayArithmetic.pd_dxds(openCode[0], b1[0]) && LotteryPlayArithmetic.pd_dxds(openCode[1], b1[1]) ? 1 : 0;
                break;

            case 93:    //后二大小单双
                winTimes = LotteryPlayArithmetic.pd_dxds(openCode[3], b1[0]) && LotteryPlayArithmetic.pd_dxds(openCode[4], b1[1]) ? 1 : 0;
                break;

            case 94:    //前三大小单双
                winTimes = LotteryPlayArithmetic.pd_dxds(openCode[0], b1[0]) && LotteryPlayArithmetic.pd_dxds(openCode[1], b1[1]) && LotteryPlayArithmetic.pd_dxds(openCode[2], b1[2]) ? 1 : 0;
                break;

            case 95:    //后三大小单双
                winTimes = LotteryPlayArithmetic.pd_dxds(openCode[2], b1[0]) && LotteryPlayArithmetic.pd_dxds(openCode[3], b1[1]) && LotteryPlayArithmetic.pd_dxds(openCode[4], b1[2]) ? 1 : 0;
                break;

                #endregion
                #region 任选二
            case 96:    //任选二直选复式
                rxzxfs(b1, out winTimes, openCode, 2);
                break;

            case 97:    //任选二直选单式
                rxzxds(betNum, rxdswz, out winTimes, openCode, 2);
                break;

            case 98:    //任选二直选和值
                foreach (var item in pl_rx(rxdswz, 2))
                {
                    winTimes += b1[0].Contains(openCode[item[0]] + openCode[item[1]]) ? 1 : 0;
                }
                break;

            case 99:    //任选二组选复式
                foreach (var item in pl_rx(rxdswz, 2))
                {
                    winTimes += (openCode[item[0]] != openCode[item[1]]) && b1[0].Contains(openCode[item[0]]) && b1[0].Contains(openCode[item[1]]) ? 1 : 0;
                }
                break;

            case 100:    //任选二组选单式
                foreach (var item in pl_rx(rxdswz, 2))
                {
                    var rxzhCode = "";
                    winTimes += (pd_rxzh(rxzhCode, openCode[item[0]], openCode[item[1]]) == 1) && betNum.Contains(rxzhCode) ? 1 : 0;
                }
                break;

            case 101:    //任选二组选和值
                foreach (var item in pl_rx(rxdswz, 2))
                {
                    winTimes += (openCode[item[0]] != openCode[item[1]]) && b1[0].Contains(openCode[item[0]] + openCode[item[1]]) ? 1 : 0;
                }
                break;

                #endregion
                #region 任选三
            case 102:    //任选三直选复式
                rxzxfs(b1, out winTimes, openCode, 3);
                break;

            case 103:    //任选三直选单式
                rxzxds(betNum, rxdswz, out winTimes, openCode, 3);
                break;

            case 104:    //任选三直选和值
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    winTimes += b1[0].Contains(openCode[item[0]] + openCode[item[1]] + openCode[item[2]]) ? 1 : 0;
                }
                break;

            case 105:    //任选三组三复式
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    winTimes += (pd_rxzh("", openCode[item[0]], openCode[item[1]], openCode[item[2]]) == 3) && b1[0].Contains(openCode[item[0]]) && b1[0].Contains(openCode[item[1]]) && b1[0].Contains(openCode[item[2]]) ? 1 : 0;
                }
                break;

            case 106:    //任选三组三单式
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    var rxzhCode = "";
                    winTimes += (pd_rxzh(rxzhCode, openCode[item[0]], openCode[item[1]], openCode[item[2]]) == 3) && betNum.Contains(rxzhCode) ? 1 : 0;
                }
                break;

            case 107:    //任选三组六复式
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    winTimes += (pd_rxzh("", openCode[item[0]], openCode[item[1]], openCode[item[2]]) == 6) && b1[0].Contains(openCode[item[0]]) && b1[0].Contains(openCode[item[1]]) && b1[0].Contains(openCode[item[2]]) ? 1 : 0;
                }
                break;

            case 108:    //任选三组六单式
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    var rxzhCode = "";
                    winTimes += (pd_rxzh(rxzhCode, openCode[item[0]], openCode[item[1]], openCode[item[2]]) == 6) && betNum.Contains(rxzhCode) ? 1 : 0;
                }
                break;

            case 109:    //任选三混合组选
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    var rxzhCode = "";
                    var lb1      = pd_rxzh(rxzhCode, openCode[item[0]], openCode[item[1]], openCode[item[2]]);
                    if (lb1 > 0)
                    {
                        winTimes  += betNum.Contains(rxzhCode) ? 1 : 0;
                        BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[lb1];
                    }
                }
                break;

            case 110:    //任选三组选和值
                foreach (var item in pl_rx(rxdswz, 3))
                {
                    var lb1 = pd_rxzh("", openCode[item[0]], openCode[item[1]], openCode[item[2]]);
                    if (lb1 > 0)
                    {
                        winTimes  += b1[0].Contains(openCode[item[0]] + openCode[item[1]] + openCode[item[2]]) ? 1 : 0;
                        BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[lb1];
                    }
                }
                break;

                #endregion
                #region 任选四
            case 111:    //任选四直选复式
                rxzxfs(b1, out winTimes, openCode, 4);
                break;

            case 112:    //任选四直选单式
                rxzxds(betNum, rxdswz, out winTimes, openCode, 4);
                break;

            case 113:    //任选四组选24
                rszx(b1, rxdswz, openCode, zxlbList, 24, out winTimes);
                break;

            case 114:    //任选四组选12
                rszx(b1, rxdswz, openCode, zxlbList, 12, out winTimes);
                break;

            case 115:    //任选四组选6
                rszx(b1, rxdswz, openCode, zxlbList, 6, out winTimes);
                break;

            case 116:    //任选四组选4
                rszx(b1, rxdswz, openCode, zxlbList, 4, out winTimes);
                break;
                #endregion
            }
            //不具有奖级玩法类型的中奖金额
            if (LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass == null)
            {
                BackMoney = winTimes * LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PayBack;
            }
            return(winTimes);
        }
示例#2
0
        /// <summary>
        /// 开奖判断
        /// </summary>
        /// <param name="LotteryPlayName"></param>
        /// <param name="betNo"></param>
        /// <param name="openNo"></param>
        /// <returns></returns>
        public static int isWin(int BetPlayTypeCode, string betNum, List <int> openCode, List <int> f3, List <int> f2, int dan, int zhongwei, out decimal BackMoney)
        {
            int winTimes = 0;

            BackMoney = 0;
            var b1 = new List <List <int> >();//投注号

            if (BetPlayTypeCode == 13)
            {
                betNum = MyTool.ChangeBetNumTSH(betNum);
            }
            //if (BetPlayTypeCode == 12)
            //{
            //    var str = betNum.Split('|');
            //    foreach (var item in str)
            //    {
            //        if (item.Length > 1)
            //        {
            //            b1.Add(item.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
            //        }
            //        else
            //        {
            //            b1.Add(null);
            //        }
            //    }
            //}
            //else if (betNum.IndexOf('|') > -1)//()
            //{
            //    b1 = betNum.Split('|').Select(
            //            n => n.Split(' ').Select(w => Convert.ToInt32(w)).ToList()
            //            ).ToList();
            //}
            //else
            //{
            //    b1.Add(betNum.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
            //}
            ////else
            ////{
            ////    foreach (var item in betNum.Split('|'))
            ////    {
            ////        if (string.IsNullOrEmpty(item))
            ////        {
            ////            b1.Add(new List<int>());
            ////        }
            ////        else
            ////        {
            ////            b1.Add(item.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
            ////        }
            ////    }
            ////}
            if (betNum.IndexOf('|') > -1)
            {
                foreach (var item in betNum.Split('|'))
                {
                    if (item.Length > 0)
                    {
                        b1.Add(item.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
                    }
                    else
                    {
                        b1.Add(null);
                    }
                }
            }
            else
            {
                b1.Add(betNum.Split(' ').Select(w => Convert.ToInt32(w)).ToList());
            }
            switch (BetPlayTypeCode)
            {
                #region 前三
            case 1:    //"前三直选复式"
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) && b1[2].Contains(openCode[2]) ? 1 : 0;
                break;

            case 2:                                                                                                   //"前三直选单式":
                winTimes = b1.Exists(n => n[0] == openCode[0] && n[1] == openCode[1] && n[2] == openCode[2]) ? 1 : 0; //前3个号顺序数值一致
                break;

            case 3:    //"前三组选复式":
                winTimes = b1[0].Contains(openCode[0]) && b1[0].Contains(openCode[1]) && b1[0].Contains(openCode[2]) ? 1 : 0;
                break;

            case 4:    //"前三组选单式":
                winTimes = b1.Exists(n => n.Contains(openCode[0]) && n.Contains(openCode[1]) && n.Contains(openCode[2])) ? 1 : 0;
                break;

            case 5:    //"前三组选胆拖":
                winTimes = dtPlay(b1, f3, 3, 3);
                break;

                #endregion
                #region 前二
            case 6:    //"前二直选复式":
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) ? 1 : 0;
                break;

            case 7:                                                                            //"前二直选单式":
                winTimes = b1.Exists(n => n[0] == openCode[0] && n[1] == openCode[1]) ? 1 : 0; //前2个号顺序数值一致
                break;

            case 8:    //"前二组选复式":
                winTimes = b1[0].Contains(openCode[0]) && b1[0].Contains(openCode[1]) ? 1 : 0;
                break;

            case 9:    //"前二组选单式":
                winTimes = b1.Exists(n => n.Contains(openCode[0]) && n.Contains(openCode[1]))? 1 : 0;
                break;

            case 10:    //"前二组选胆拖":
                winTimes = dtPlay(b1, f2, 2, 2);
                break;

                #endregion
                #region  定位,定位胆,趣味型
            case 11:    //"不定位"://前三位
                winTimes = (from a in b1[0]
                            from b in f3
                            where a == b
                            select a).Count();
                break;

            case 12:                               //"定位胆"://前三位
                for (int i = 0; i < b1.Count; i++) //投选几位判断几位,b1.Length取值(1-3)
                {
                    if (b1[i] != null)
                    {
                        winTimes += b1[i].Contains(openCode[i]) ? 1 : 0;
                    }
                }
                break;

            //"趣味定_单双":
            case 13:
                if (b1[0].Contains(dan))
                {
                    winTimes  = 1;
                    BackMoney = winTimes * LpList()[BetPlayTypeCode - 1].PrizeClass[dan];
                }
                break;

            //"趣味猜_中位":
            case 14:
                if (b1[0].Contains(zhongwei))
                {
                    winTimes  = 1;
                    BackMoney = winTimes * LpList()[BetPlayTypeCode - 1].PrizeClass[zhongwei];
                }
                break;

                #endregion
                #region 任选X中X
            case 15:    //"任选一中一":
            case 16:    //"任选二中二":
            case 17:    //"任选三中三":
            case 18:    //"任选四中四":
                winTimes = rxPlay(b1[0], openCode, BetPlayTypeCode - 14, BetPlayTypeCode - 14);
                break;

            case 19:    //"任选五中五":
            case 20:    //"任选六中五":
            case 21:    //"任选七中五":
            case 22:    //"任选八中五":
                winTimes = rxPlay(b1[0], openCode, 5, BetPlayTypeCode - 14);
                break;

                #endregion
                #region 单式任选X中X
            case 23:    //"单式任选一中一":
            case 24:    //"单式任选二中二":
            case 25:    //"单式任选三中三":
            case 26:    //"单式任选四中四":
                winTimes = rxPlay_ds(b1, openCode, BetPlayTypeCode - 22);
                break;

            case 27:    //"单式任选五中五":
            case 28:    //"单式任选六中五":
            case 29:    //"单式任选七中五":
            case 30:    //"单式任选八中五":
                winTimes = rxPlay_ds(b1, openCode, 5);
                break;

                #endregion
                #region 任选胆拖X中X
            case 31:    //"胆拖任选二中二":
            case 32:    //"胆拖任选三中三":
            case 33:    //"胆拖任选四中四":
                winTimes = dtPlay(b1, openCode, BetPlayTypeCode - 29, BetPlayTypeCode - 29);
                break;

            case 34:    //"胆拖任选五中五":
            case 35:    //"胆拖任选六中五":
            case 36:    //"胆拖任选七中五":
            case 37:    //"胆拖任选八中五":
                winTimes = dtPlay(b1, openCode, 5, BetPlayTypeCode - 29);
                break;
                #endregion
            }
            //不具有奖金的玩法奖金计算
            if (LpList()[BetPlayTypeCode - 1].PrizeClass == null)
            {
                BackMoney = winTimes * LpList()[BetPlayTypeCode - 1].PayBack;
            }
            return(winTimes);
        }