Esempio n. 1
0
        private void CaculateBonus_14C(IWinNumberAnalyzable checker, List <int> bonusLevelList)
        {
            var hitCount  = 0;
            var winCount  = 0;
            var loseCount = 0;
            var zhu       = 1;

            for (int i = 0; i < TotalNumber; i++)
            {
                var ante = AnteCodeNumbers[i];
                var win  = checker.WinNumbers[i];
                if (ante.Contains(win) || (IsEnableWildcard && win == Wildcard))
                {
                    hitCount++;
                    if (win != Wildcard)
                    {
                        winCount += ante.Length - win.Length;
                    }
                    if (ante.Length > 1 && win == Wildcard)
                    {
                        zhu *= ante.Length;
                    }
                }
                else
                {
                    loseCount = ante.Length;
                }
            }
            if (hitCount == TotalNumber)
            {
                for (int k = 0; k < zhu; k++)
                {
                    bonusLevelList.Add(1);
                }
                //for (int j = 0; j < winCount * zhu; j++)
                //if (checker.WinNumbers.Contains(Wildcard))
                //{
                //    var count = CaculateBonus_14C_Zhong2(checker);
                //    for (int j = 0; j < count; j++)
                //    {
                //        bonusLevelList.Add(2);
                //    }
                //}
                //else
                //{
                for (int j = 0; j < winCount * zhu; j++)
                {
                    bonusLevelList.Add(2);
                }
                //}
            }
            else if (hitCount == TotalNumber - 1)
            {
                //for (int j = 0; j < loseCount * zhu; j++)
                for (int j = 0; j < loseCount * zhu; j++)
                {
                    bonusLevelList.Add(2);
                }
            }
        }
Esempio n. 2
0
        private int CaculateBonus_14C_Zhong2(IWinNumberAnalyzable checker)
        {
            var count = 0;
            //var anteCodeArray = "310,310,310,310,310,310,310,310,310,310,310,310,310,310".Split(',');
            var strL = new List <string>();

            for (int i = 0; i < AnteCodeNumbers.Count(); i++)
            {
                var valu = AnteCodeNumbers[i];
                AnteCodeNumbers[i] = "*";
                strL.Add(string.Join(",", AnteCodeNumbers));
                AnteCodeNumbers[i] = valu;
            }
            foreach (var item in strL)
            {
                var winCount = 0;
                var zhong    = 0;
                var zhu      = 1;
                var anteList = item.Split(',');
                for (int i = 0; i < TotalNumber; i++)
                {
                    var ante = anteList[i];
                    if (ante == "*")
                    {
                        continue;
                    }
                    var win = checker.WinNumbers[i];
                    if (ante.Contains(win) || (IsEnableWildcard && win == Wildcard))
                    {
                        zhong++;
                        winCount += ante.Length - win.Length;
                        if (ante.Length > 1 && win == Wildcard)
                        {
                            zhu *= ante.Length;
                        }
                    }
                }

                if (zhong == TotalNumber - 1)
                {
                    for (int i = 0; i < zhu * winCount; i++)
                    {
                        count++;
                    }
                }
            }

            return(count);
        }
Esempio n. 3
0
        private void CaculateBonus_R9(IWinNumberAnalyzable checker, List <int> bonusLevelList)
        {
            var numHitCount = 0;
            var danHitCount = 0;
            var zhu         = 1;

            var danList = new List <string>();
            var numList = new List <string>();

            for (int i = 0; i < TotalNumber; i++)
            {
                var ante = AnteCodeNumbers[i];
                var win  = checker.WinNumbers[i];
                if (ante != Wildcard && (ante.Contains(win) || (IsEnableWildcard && win == Wildcard)))
                {
                    if (DanNumbers.Contains(i))
                    {
                        danHitCount++;
                        danList.Add(ante);
                    }
                    else
                    {
                        numHitCount++;
                        numList.Add(ante);
                    }
                    if (ante.Length > 1 && win == Wildcard)
                    {
                        zhu *= ante.Length;
                    }
                }
            }
            var hitCount = numHitCount + danHitCount;

            if (danHitCount >= DanNumbers.Length)
            {
                if (hitCount >= BallNumber)
                {
                    var c = new Combination();
                    c.Calculate(numList.ToArray(), BallNumber - DanNumbers.Length, (item) =>
                    {
                        for (int i = 0; i < zhu; i++)
                        {
                            bonusLevelList.Add(1);
                        }
                    });
                }
            }
        }
Esempio n. 4
0
        private void CaculateBonus(IWinNumberAnalyzable checker, List <int> bonusLevelList)
        {
            var hitCount = 0;

            for (int i = 0; i < TotalNumber; i++)
            {
                var ante = AnteCodeNumbers[i];
                var win  = checker.WinNumbers[i];
                if (ante.Contains(win) || (IsEnableWildcard && win == Wildcard))
                {
                    hitCount++;
                }
            }
            if (hitCount == TotalNumber)
            {
                bonusLevelList.Add(1);
            }
        }