private bool IsValidBet(BettingKind betKind)
        {
            int curStreakCount = 0;
            switch (betKind)
            {
                case BettingKind.Black:
                    curStreakCount = Statistics.RedStreakCount;
                    break;
                case BettingKind.Red:
                    curStreakCount = Statistics.BlackStreakCount;
                    break;
                case BettingKind.Odd:
                    curStreakCount = Statistics.EvenStreakCount;
                    break;
                case BettingKind.Even:
                    curStreakCount = Statistics.OddStreakCount;
                    break;
                case BettingKind.To18:
                    curStreakCount = Statistics.From19StreakCount;
                    break;
                case BettingKind.From19:
                    curStreakCount = Statistics.To18StreakCount;
                    break;
                default:
                    return false;
            }

            return Settings.SingleStreakBettingSettings.StreakCounts.Any(cur => cur == curStreakCount);
        }
Exemple #2
0
        public BetViewModel(BettingKind betKind, int streakCount, int lastNumber, double amount, TimeSpan time)
        {
            BetKind = betKind;
            StreakCount = streakCount;
            LastNumber = lastNumber;
            Amount = amount;
            Time = time;

            Result = BetResultKind.None;
        }
 private void GetStreakCount(BettingKind BettingKind, out int curStreakCount, out int maxStreakCount)
 {
     curStreakCount = 0;
     maxStreakCount = 0;
     switch (BettingKind)
     {
         case BettingKind.Black:
             curStreakCount = Statistics.RedStreakCount;
             maxStreakCount = Statistics.MaxRedStreakCount;
             break;
         case BettingKind.Red:
             curStreakCount = Statistics.BlackStreakCount;
             maxStreakCount = Statistics.MaxBlackStreakCount;
             break;
         case BettingKind.Odd:
             curStreakCount = Statistics.EvenStreakCount;
             maxStreakCount = Statistics.MaxEvenStreakCount;
             break;
         case BettingKind.Even:
             curStreakCount = Statistics.OddStreakCount;
             maxStreakCount = Statistics.MaxOddStreakCount;
             break;
         case BettingKind.To18:
             curStreakCount = Statistics.From19StreakCount;
             maxStreakCount = Statistics.MaxFrom19StreakCount;
             break;
         case BettingKind.From19:
             curStreakCount = Statistics.To18StreakCount;
             maxStreakCount = Statistics.MaxTo18StreakCount;
             break;
         case BettingKind.RedAltBlack:
             curStreakCount = Statistics.AlternatingRedBlackStreakCount;
             maxStreakCount = Statistics.MaxAlternatingRedBlackStreakCount;
             break;
         case BettingKind.EvenAltOdd:
             curStreakCount = Statistics.AlternatingOddEvenStreakCount;
             maxStreakCount = Statistics.MaxAlternatingOddEvenStreakCount;
             break;
         case BettingKind.To18AltFrom19:
             curStreakCount = Statistics.Alternating1818StreakCount;
             maxStreakCount = Statistics.MaxAlternating1818StreakCount;
             break;
         default:
             return;
     }
 }
        private BetViewModel PlaceBet(BettingKind betKind, RouletteButtonKind betButtonKind, int streakCount, double amount = 0)
        {
            //TODO select correct bet amount button (when auto adjust is enabled)
            if (!Settings.IsBettingEnabled)
                return null;

            if (amount == 0)
                amount = Settings.DefaultBet.Amount.Value;

            if (amount < Settings.MinBetAmount)
                amount = Settings.MinBetAmount;
            else if (amount > Settings.MaxBetAmount)
                amount = Settings.MaxBetAmount;

            if (!Settings.IsSimulationMode)
            {
                RouletteBoardHelper.SetBet(Settings.DefaultBet);

                int betClicksToAmount = 1;
                if (amount > 0)
                    betClicksToAmount = (int)(amount / Settings.DefaultBet.Amount.Value);

                for (int i = 0; i < betClicksToAmount; i++)
                {
                    RouletteBoardHelper.ClickButton(betButtonKind);
                }
            }

            //int curStreakCount = GetOppositeStreakCount(betKind);
            double betAmount = amount == 0 ? Settings.DefaultBet.Amount.Value : amount;

            BetViewModel newBet = new BetViewModel(betKind, streakCount, Statistics.LastNumber.Value, betAmount, ApplicationViewModel.Instance.Session.ElapsedTime);
            Statistics.AddBetToHistory(newBet);

            return newBet;
        }
        /// <summary>
        /// Place a single bet.
        /// </summary>
        /// <param name="amount">Amount to place. 0 for DefaultBet.</param>
        protected BetViewModel PlaceBet(BettingKind betKind, int streakCount = 0, double amount = 0)
        {
            RouletteButtonKind? betButton = null;
            switch (betKind)
            {
                case BettingKind.To18:
                    betButton = RouletteButtonKind.To18;
                    break;
                case BettingKind.From19:
                    betButton = RouletteButtonKind.From19;
                    break;
                case BettingKind.Even:
                    betButton = RouletteButtonKind.Even;
                    break;
                case BettingKind.Odd:
                    betButton = RouletteButtonKind.Odd;
                    break;
                case BettingKind.Red:
                    betButton = RouletteButtonKind.Red;
                    break;
                case BettingKind.Black:
                    betButton = RouletteButtonKind.Black;
                    break;
                case BettingKind.To18AltFrom19:
                    {
                        bool lastWasTo18 = RouletteHelper.IsNumberOfType(Statistics.LastNumber.Value, NumberKind.To18);
                        if (lastWasTo18)
                            betButton = RouletteButtonKind.To18;
                        else
                            betButton = RouletteButtonKind.From19;
                    }
                    break;
                case BettingKind.EvenAltOdd:
                    {
                        bool lastWasEven = RouletteHelper.IsNumberOfType(Statistics.LastNumber.Value, NumberKind.Even);
                        if (lastWasEven)
                            betButton = RouletteButtonKind.Even;
                        else
                            betButton = RouletteButtonKind.Odd;
                    }
                    break;
                case BettingKind.RedAltBlack:
                    {
                        bool lastWasRed = RouletteHelper.IsNumberOfType(Statistics.LastNumber.Value, NumberKind.Red);
                        if (lastWasRed)
                            betButton = RouletteButtonKind.Red;
                        else
                            betButton = RouletteButtonKind.Black;
                    }
                    break;
                default:
                    return null;
            }

            return PlaceBet(betKind, betButton.Value, streakCount, amount);
        }
        private bool IsValidBet(BettingKind BettingKind)
        {
            int curStreakCount;
            int maxStreakCount;
            GetStreakCount(BettingKind, out curStreakCount, out maxStreakCount);

            int maxBettingStreakCount = Settings.MaxBettingStreakCount;
            if (Settings.AutoAdjustBettingStreakCount && maxStreakCount > maxBettingStreakCount)
                maxBettingStreakCount = maxStreakCount;

            int minBettingOffset = Settings.MaxBettingStreakCount - Settings.MinBettingStreakCount;
            int minBettingStreakCount = maxBettingStreakCount - minBettingOffset;

            return curStreakCount >= minBettingStreakCount && curStreakCount <= maxBettingStreakCount;
        }