/// <summary>
 /// 后三组选包胆
 /// </summary>
 public static void hszxbd(int BetPlayTypeCode, List <List <int> > b1, List <ZXLB> zxlbList, out int winTimes, out decimal BackMoney, List <int> openCode)
 {
     winTimes = 0; BackMoney = 0; var lb = LotteryPlayArithmetic.pd(openCode, out zxlbList);
     if (lb > 0)
     {
         winTimes  = openCode.Contains(b1[0][0]) ? 1 : 0;
         BackMoney = winTimes * LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[lb];
     }
 }
 /// <summary>
 /// 直选组合
 /// </summary>
 public static void Zxzh(int BetPlayTypeCode, List <List <int> > b1, out int winTimes, out decimal BackMoney, List <int> openCode)
 {
     winTimes  = 0;
     BackMoney = 0;
     for (int i = 1; i <= openCode.Count; i++)
     {
         if (b1[openCode.Count - i].Contains(openCode[openCode.Count - i]))
         {
             winTimes++;
             BackMoney += LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[i];
         }
     }
 }
 /// <summary>
 /// 后三混合组选
 /// </summary>
 public static void hshhzx(int BetPlayTypeCode, string betNum, List <ZXLB> zxlbList, out int winTimes, out decimal BackMoney, List <int> openCode)
 {
     winTimes = 0; BackMoney = 0; var lb = LotteryPlayArithmetic.pd(openCode, out zxlbList);
     if (lb > 0)
     {
         var str = "";
         foreach (var item in openCode.OrderBy(n => n))
         {
             str += item;
         }
         winTimes  = betNum.Contains(str) ? 1 : 0;
         BackMoney = winTimes * LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[lb];
     }
 }
        public static decimal GetAgentBackMoney_SSC(int code, decimal percent)
        {
            var key = code + "," + percent;

            if (!AgentBackMoneyDic2_SSC.Keys.Contains(key)) //若不再字典则计算和添加
            {
                var j = LotteryInfo_SSC.LpList().FirstOrDefault(n => n.BetPlayTypeCode == code);
                if (j == null)
                {
                    return(0);
                }
                AgentBackMoneyDic2_SSC.Add(key, GetAgentBackMoney_SSC(j.PayBack, percent));
            }
            return(AgentBackMoneyDic2_SSC[key]);
        }
예제 #5
0
        public static List <LotteryPlay> GetLotteryPlayList(string LotteryType)
        {
            List <LotteryPlay> list = new List <LotteryPlay>();

            switch (LotteryType)
            {
            case "ssc":
                list = LotteryInfo_SSC.LpList();
                break;

            case "11x5":
                list = LotteryOpenTool_11x5.LpList();
                break;

            case "dpc":
                list = LotteryOpenTool_3D.LpList();
                break;
            }
            return(list);
        }
        /// <summary>
        /// 后三特殊号
        /// </summary>
        public static void hstsh(int BetPlayTypeCode, List <List <int> > b1, List <ZXLB> zxlbList, out int winTimes, out decimal BackMoney, List <int> openCode)
        {
            winTimes = 0; BackMoney = 0; var lb = LotteryPlayArithmetic.pd(openCode, out zxlbList);
            if (lb == 6 && b1[0].Contains(1))
            {
                var list = openCode.OrderBy(n => n).ToList();
                winTimes = 1;
                for (int i = 1; i < list.Count; i++)
                {
                    if (list[i] - list[0] != 1)
                    {
                        winTimes = 0;
                        break;
                    }
                }
            } //顺子1
            else if (lb == 3 && b1[0].Contains(2))//对子2
            {
                winTimes = 1;
            }
            else if (lb == 0 && b1[0].Contains(3))//豹子3
            {
                winTimes = 1;
            }
            switch (lb)
            {
            case 6:
                lb = 1;
                break;

            case 3:
                lb = 2;
                break;

            case 0:
                lb = 3;
                break;
            }
            BackMoney = winTimes * LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PrizeClass[lb];
        }
        /// <summary>
        /// 获取返点奖金
        /// </summary>
        /// <param name="BetPlayTypeCode"></param>
        /// <param name="percent"></param>
        /// <returns></returns>
        public List <string> GetAgentBackMoneyByCode(int BetPlayTypeCode, decimal percent, string lotteryType)
        {
            List <string> list = new List <string>();

            switch (lotteryType)
            {
            case "ssc":
                list.Add(AgentCalculateTool.GetAgentBackMoney_SSC(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryInfo_SSC.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;

            case "11x5":
                list.Add(AgentCalculateTool.GetAgentBackMoney_11x5(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryOpenTool_11x5.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;

            case "dpc":
                list.Add(AgentCalculateTool.GetAgentBackMoney_3D(BetPlayTypeCode, percent) + "-0%");
                list.Add(LotteryOpenTool_3D.LpList()[BetPlayTypeCode - 1].PayBack + "-" + percent + "%");
                break;
            }
            return(list);
        }
        /// <summary>
        /// 开奖判断
        /// </summary>
        public static int isWin(int BetPlayTypeCode, string betNum, List <int> rxdswz, List <int> openCode, List <int> h2, List <int> q2, int dan, int da, out decimal BackMoney)
        {
            int         winTimes = 0;
            List <ZXLB> zxlbList = null;

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

            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();
            }
            switch (BetPlayTypeCode)
            {
                #region 定位胆
            case 1:    //定位胆
                for (int i = 0; i < openCode.Count; i++)
                {
                    winTimes += b1[i].Contains(openCode[i]) ? 1 : 0;
                }
                break;

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

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

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

            case 5:    //三星组三复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 3, 2, openCode);
                break;

            case 6:    //三星组三单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 3, openCode);
                break;

            case 7:    //三星组六复式
                winTimes = LotteryPlayArithmetic.zxfs(b1, zxlbList, 6, 3, openCode);
                break;

            case 8:    //三星组六单式
                winTimes = LotteryPlayArithmetic.zxds(betNum, zxlbList, 6, openCode);
                break;

            case 9:    //三星混合组选
                LotteryPlayArithmetic.hshhzx(BetPlayTypeCode, betNum, zxlbList, out winTimes, out BackMoney, openCode);
                break;

            case 10:    //三星组选和值
                LotteryPlayArithmetic.hszxhz(BetPlayTypeCode, b1, zxlbList, out winTimes, out BackMoney, openCode);
                break;

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

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

            case 13:    //后二直选复式
                winTimes = b1[0].Contains(openCode[0]) && b1[1].Contains(openCode[1]) ? 1 : 0;
                break;

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

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

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

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

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

                #endregion
                #region  定位
            case 19:    //一码不定位
                winTimes = LotteryPlayArithmetic.bdw(b1, 1, openCode);
                break;

            case 20:    //二码不定位
                winTimes = LotteryPlayArithmetic.bdw(b1, 1, openCode);
                break;

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

            case 22:    //后二大小单双
                winTimes = LotteryPlayArithmetic.pd_dxds(openCode[1], b1[0]) && LotteryPlayArithmetic.pd_dxds(openCode[2], b1[1]) ? 1 : 0;
                break;
                #endregion
            }
            //不具有奖级玩法类型的中奖金额
            if (LpList()[BetPlayTypeCode - 1].PrizeClass == null)
            {
                BackMoney = winTimes * LpList()[BetPlayTypeCode - 1].PayBack;
            }
            return(winTimes);
        }
        /// <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);
        }