コード例 #1
0
ファイル: RythmBetting.cs プロジェクト: pedone/CasinoRobot
        public override void PlaceBets()
        {
            if (!Statistics.LastNumber.HasValue)
                return;

            RemoveBets();

            //Rythm
            //1xR - 1xB - 2xR - 2xB ...

            double betAmount = _defaultBetAmount;
            if (_LastBet != null && _LastBet.Result == Enums.BetResultKind.Loss)
                betAmount = _LastBet.Amount * 2;

            if (_betIndex == 0)
                _LastBet = PlaceBet(Enums.BettingKind.Red, amount: betAmount);
            else if (_betIndex == 1)
                _LastBet = PlaceBet(Enums.BettingKind.Black, amount: betAmount);
            else if (_betIndex == 2)
                _LastBet = PlaceBet(Enums.BettingKind.Red, amount: betAmount);
            else if (_betIndex == 3)
                _LastBet = PlaceBet(Enums.BettingKind.Red, amount: betAmount);
            else if (_betIndex == 4)
                _LastBet = PlaceBet(Enums.BettingKind.Black, amount: betAmount);
            else if (_betIndex == 5)
            {
                _LastBet = PlaceBet(Enums.BettingKind.Black, amount: betAmount);
                _betIndex = -1;
            }

            _betIndex++;
        }
コード例 #2
0
ファイル: BettingModeBase.cs プロジェクト: pedone/CasinoRobot
        protected BetResultKind CalculateWinningsOnBet(BetViewModel bet, CasinoNumberViewModel curNumber)
        {
            if (bet == null)
                return BetResultKind.None;

            if (curNumber == null)
            {
                bet.Result = BetResultKind.Unclear;
            }
            else
            {

                bool isZero = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.Zero);
                bool isRed = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.Red);
                bool isBlack = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.Black);
                bool isOdd = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.Odd);
                bool isEven = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.Even);
                bool isTo18 = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.To18);
                bool isFrom19 = RouletteHelper.IsNumberOfType(curNumber.Number, NumberKind.From19);

                bool isWin = false;
                switch (bet.BetKind)
                {
                    case BettingKind.To18:
                        isWin = isTo18;
                        break;
                    case BettingKind.From19:
                        isWin = isFrom19;
                        break;
                    case BettingKind.Even:
                        isWin = isEven;
                        break;
                    case BettingKind.Odd:
                        isWin = isOdd;
                        break;
                    case BettingKind.Red:
                        isWin = isRed;
                        break;
                    case BettingKind.Black:
                        isWin = isBlack;
                        break;
                    case BettingKind.To18AltFrom19:
                        bool isLastNumberTo18 = RouletteHelper.IsNumberOfType(bet.LastNumber, NumberKind.To18);
                        isWin = (isTo18 == isLastNumberTo18);
                        break;
                    case BettingKind.EvenAltOdd:
                        bool isLastNumberEven = RouletteHelper.IsNumberOfType(bet.LastNumber, NumberKind.Even);
                        isWin = (isEven == isLastNumberEven);
                        break;
                    case BettingKind.RedAltBlack:
                        bool isLastNumberRed = RouletteHelper.IsNumberOfType(bet.LastNumber, NumberKind.Red);
                        isWin = (isRed == isLastNumberRed);
                        break;
                    default:
                        isWin = false;
                        break;
                }

                if (isWin)
                {
                    Statistics.WinningsAmount += bet.Amount;
                    Statistics.WinCount++;

                    bet.Result = BetResultKind.Win;
                }
                else
                {
                    Statistics.LossesAmount += bet.Amount;
                    Statistics.LossCount++;

                    bet.Result = BetResultKind.Loss;
                }
            }

            return bet.Result;
        }
コード例 #3
0
ファイル: BettingModeBase.cs プロジェクト: pedone/CasinoRobot
        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;
        }
コード例 #4
0
 public void AddBetToHistory(BetViewModel bet)
 {
     if (!_BetHistory.Contains(bet))
         _BetHistory.Add(bet);
 }
コード例 #5
0
 public override void ResetBettingStreak()
 {
     LastBet = null;
 }
コード例 #6
0
 public override void CalculateWinnings(CasinoNumberViewModel drawnNumber)
 {
     if (CalculateWinningsOnBet(LastBet, drawnNumber) != BetResultKind.Loss)
         LastBet = null;
 }
コード例 #7
0
        private void PlaceNewBet()
        {
            //TODO calculate best bet count based on max streaks counts and stuff

            var bettingKind = BettingKind.None;
            if (IsValidBet(BettingKind.Red))
            {
                bettingKind = BettingKind.Red;
            }
            else if (IsValidBet(BettingKind.Black))
            {
                bettingKind = BettingKind.Black;
            }
            else if (IsValidBet(BettingKind.Odd))
            {
                bettingKind = BettingKind.Odd;
            }
            else if (IsValidBet(BettingKind.Even))
            {
                bettingKind = BettingKind.Even;
            }
            else if (IsValidBet(BettingKind.To18))
            {
                bettingKind = BettingKind.To18;
            }
            else if (IsValidBet(BettingKind.From19))
            {
                bettingKind = BettingKind.From19;
            }
            else if (IsValidBet(BettingKind.EvenAltOdd))
            {
                bettingKind = BettingKind.EvenAltOdd;
            }
            else if (IsValidBet(BettingKind.RedAltBlack))
            {
                bettingKind = BettingKind.RedAltBlack;
            }
            else if (IsValidBet(BettingKind.To18AltFrom19))
            {
                bettingKind = BettingKind.To18AltFrom19;
            }

            if (bettingKind != BettingKind.None)
            {
                int curStreakCount;
                int maxStreakCount;
                GetStreakCount(bettingKind, out curStreakCount, out maxStreakCount);

                LastBet = PlaceBet(bettingKind, curStreakCount);
                if (LastBet != null)
                    LastBet.GroupId = GetNewBettingGroupId();

                _CurrentBettingStreakCount = 1;
            }
        }
コード例 #8
0
        private bool PlaceFollowUpBet()
        {
            if (LastBet != null && LastBet.Result == BetResultKind.Win)
                LastBet = null;
            if (LastBet == null)
                return false;

            if (_CurrentBettingStreakCount < Settings.MaxBettingStreakLength)
            {
                //double up on last loss
                double newBetAmount = LastBet.Amount;
                if (Settings.DoubleUpOnLoss)
                    newBetAmount *= 2;

                int curStreakCount;
                int maxStreakCount;
                GetStreakCount(LastBet.BetKind, out curStreakCount, out maxStreakCount);

                LastBet = PlaceBet(LastBet.BetKind, curStreakCount, newBetAmount);
                LastBet.GroupId = LastBettingGroupId;
                _CurrentBettingStreakCount++;

                return true;
            }
            else
            {
                LastBet.Result = BetResultKind.Loss;
                LastBet = null;

                return false;
            }
        }