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++; }
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; }
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; }
public void AddBetToHistory(BetViewModel bet) { if (!_BetHistory.Contains(bet)) _BetHistory.Add(bet); }
public override void ResetBettingStreak() { LastBet = null; }
public override void CalculateWinnings(CasinoNumberViewModel drawnNumber) { if (CalculateWinningsOnBet(LastBet, drawnNumber) != BetResultKind.Loss) LastBet = null; }
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; } }
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; } }