private void StrategyWrapper(List <ResultBaccaratCoup> results, ScoreBaccarat scoreShoe, decimal sessionTotal, MoneyManagementShoe mmShoe, MoneyManagementBankroll mmBankroll) { OutcomesBaccaratCoup outcome = OutcomesBaccaratCoup.None; for (int i = 0; i < results.Count; i++) { outcome = MyStrategy[0].StrategyCore(i, results, scoreShoe, sessionTotal + scoreShoe.TotalScore, MyBetProgression[0].BetProgressionCore, mmShoe, mmBankroll); if (outcome == OutcomesBaccaratCoup.None || outcome == OutcomesBaccaratCoup.Continue) { outcome = MyStrategy[1].StrategyCore(i, results, scoreShoe, sessionTotal + scoreShoe.TotalScore, MyBetProgression[1].BetProgressionCore, mmShoe, mmBankroll); if (outcome == OutcomesBaccaratCoup.None || outcome == OutcomesBaccaratCoup.Continue) { outcome = MyStrategy[2].StrategyCore(i, results, scoreShoe, sessionTotal + scoreShoe.TotalScore, MyBetProgression[2].BetProgressionCore, mmShoe, mmBankroll); if (outcome == OutcomesBaccaratCoup.None || outcome == OutcomesBaccaratCoup.Continue) { outcome = MyStrategy[3].StrategyCore(i, results, scoreShoe, sessionTotal + scoreShoe.TotalScore, MyBetProgression[3].BetProgressionCore, mmShoe, mmBankroll); } } } if (outcome == OutcomesBaccaratCoup.Break) { break; } results[i].TotalDollarScore = scoreShoe.TotalScore; } }
public void init() { score = new ScoreBaccarat(); Assert.AreEqual(0, score.NumberBet); AssertInitialValuesWin(); AssertInitialValuesLoss(); }
public void PlaySession() { ItemsShoe.Clear(); shoeResults.Clear(); shoeScores.Clear(); SetupMoneyManagement(); for (int setNumber = 0; setNumber < Constants.StrategizeTotalNumber; setNumber++) { App.StrategizeSetNumber = setNumber; SetupBetProgression(setNumber); SetupStrategy(setNumber); } initNumberStats(); scoreSession = new ScoreBaccarat(); //Deployment.Current.Dispatcher.BeginInvoke(() => //{ for (int i = 0; i < App.GameBaccaratViewModel.NShoesInt; i++) { scoreShoe = new ScoreBaccarat(); GenerateBaccaratShoe(); ResetProgressions(); strategy(gameBaccarat.Results, scoreShoe, scoreSession.TotalScore, mmShoe, mmBankroll); gameBaccarat.aResultBaccaratShoe.IndexShoe = i + 1; incrementSessionScore(); ItemsShoe.Add(new ItemResultBaccaratShoeViewModel() { IndexShoe = gameBaccarat.aResultBaccaratShoe.IndexShoe.ToString(), NCoup = gameBaccarat.aResultBaccaratShoe.NCoups.ToString(), NPlayer = gameBaccarat.aResultBaccaratShoe.WinPlayer.ToString(), NBanker = gameBaccarat.aResultBaccaratShoe.WinBanker.ToString(), NTie = gameBaccarat.aResultBaccaratShoe.WinTie.ToString(), ScoreShoe = scoreShoe.TotalScore.ToString(), ScoreTotal = scoreSession.TotalScore.ToString(), }); shoeResults.Add(new List <ResultBaccaratCoup>(gameBaccarat.Results)); shoeScores.Add(scoreShoe); if (myMoneyManagement.BankrollBust) { break; } } //}); }
public void PrepareGame(bool includeTies = true) { score = new ScoreBaccarat(); shoe = new Shoe(cards); game = new GameBaccarat() { Shoe = shoe }; game.IncludeTies = includeTies; game.Play(); myBetProgression = new BetProgressions[Constants.StrategizeTotalNumber] { new BetProgressions(), new BetProgressions(), new BetProgressions(), new BetProgressions() }; myStrategy = new StrategyBaccarat[Constants.StrategizeTotalNumber] { new StrategyBaccarat(), new StrategyBaccarat(), new StrategyBaccarat(), new StrategyBaccarat() }; for (int setNumber = 0; setNumber < Constants.StrategizeTotalNumber; setNumber++) { myBetProgression[setNumber].BetProgressionType = BetProgressionTypes.FlatBet; myStrategy[setNumber].StrategyBaccaratType = StrategiesBaccaratTypes.None; } strategyMultiWrapper = new StrategyMultiWrapper(); for (int setNumber = 0; setNumber < Constants.StrategizeTotalNumber; setNumber++) { strategyMultiWrapper.MyBetProgression[setNumber] = myBetProgression[setNumber]; strategyMultiWrapper.MyStrategy[setNumber] = myStrategy[setNumber]; } myMoneyManagement = new MoneyManagements(); mmShoe = myMoneyManagement.getMoneyManagementShoe(false, false); mmBankroll = myMoneyManagement.getMoneyManagementBankroll(false); }
private void LoadWinLossStatistics(ScoreBaccarat score) { // number: int numberPlayerWin = score.NumberPlayerWin; int numberBankerWin = score.NumberBankerWin; int numberTieWin = score.NumberTieWin; int numberWin = numberPlayerWin + numberBankerWin + numberTieWin; int numberPlayerLoss = score.NumberPlayerLoss; int numberBankerLoss = score.NumberBankerLoss; int numberTieLoss = score.NumberTieLoss; int numberLoss = numberPlayerLoss + numberBankerLoss + numberTieLoss; StatsWinLossNumberValue = new StringBuilder(numberWin.ToString()).Append(" : ").Append(numberLoss.ToString()).ToString(); StatsWinLossNumberPlayerValue = new StringBuilder(numberPlayerWin.ToString()).Append(" : ").Append(numberPlayerLoss.ToString()).ToString(); StatsWinLossNumberBankerValue = new StringBuilder(numberBankerWin.ToString()).Append(" : ").Append(numberBankerLoss.ToString()).ToString(); StatsWinLossNumberTieValue = new StringBuilder(numberTieWin.ToString()).Append(" : ").Append(numberTieLoss.ToString()).ToString(); StatsWinLossNumberPercent = Utilities.Utilities.CalculateRatio(numberWin, numberLoss); StatsWinLossNumberPlayerPercent = Utilities.Utilities.CalculateRatio(numberPlayerWin, numberPlayerLoss); StatsWinLossNumberBankerPercent = Utilities.Utilities.CalculateRatio(numberBankerWin, numberBankerLoss); StatsWinLossNumberTiePercent = Utilities.Utilities.CalculateRatio(numberTieWin, numberTieLoss); // units: int unitPlayerWin = score.UnitPlayerWin; decimal netBankerWin = Math.Round((decimal)Constants.UnitBankerWinPayoff * score.UnitBankerWin, 2); int unitTieWin = score.UnitTieWin; decimal unitWin = unitPlayerWin + netBankerWin + unitTieWin; int unitPlayerLoss = score.UnitPlayerLoss; int unitBankerLoss = score.UnitBankerLoss; int unitTieLoss = score.UnitTieLoss; int unitLoss = unitPlayerLoss + unitBankerLoss + unitTieLoss; StatsWinLossUnitValue = new StringBuilder(unitWin.ToString()).Append(" : ").Append(unitLoss.ToString()).ToString(); StatsWinLossUnitPlayerValue = new StringBuilder(unitPlayerWin.ToString()).Append(" : ").Append(unitPlayerLoss.ToString()).ToString(); StatsWinLossUnitBankerValue = new StringBuilder(netBankerWin.ToString("f2")).Append(" : ").Append(unitBankerLoss.ToString()).ToString(); StatsWinLossUnitTieValue = new StringBuilder(unitTieWin.ToString()).Append(" : ").Append(unitTieLoss.ToString()).ToString(); StatsWinLossUnitPercent = Utilities.Utilities.CalculateRatio(unitWin, unitLoss); StatsWinLossUnitPlayerPercent = Utilities.Utilities.CalculateRatio(unitPlayerWin, unitPlayerLoss); StatsWinLossUnitBankerPercent = Utilities.Utilities.CalculateRatio(netBankerWin, unitBankerLoss); StatsWinLossUnitTiePercent = Utilities.Utilities.CalculateRatio(unitTieWin, unitTieLoss); // max: StatsMaxValue = new StringBuilder(score.MaxWin.ToString("f2")).Append(" : ").Append(score.MaxLoss.ToString("f2")).ToString(); // ave: StatsAveValue = new StringBuilder(Utilities.Utilities.CalculateRatio(unitWin, numberWin)).Append(" : ").Append(Utilities.Utilities.CalculateRatio(unitLoss, numberLoss)).ToString(); // total score: StatsTotalScoreValue = score.TotalScore.ToString("f2"); // PA: Player's Advantage = total score / total units bet StatsPAValue = new StringBuilder(Utilities.Utilities.CalculateRatio(100 * score.TotalScore, score.UnitBet)).Append("%").ToString(); }
private OutcomesBaccaratCoup StrategyCore_Follow(int i, List <ResultBaccaratCoup> results, ScoreBaccarat scoreShoe, decimal sessionTotalScore, BetProgressionCore betProgression, MoneyManagementShoe mmShoe, MoneyManagementBankroll mmBankroll) { if (i < Follow_Length) { Follow_BetPlacement = OutcomesBaccaratCoup.None; return(OutcomesBaccaratCoup.Continue); } int j = 1; OutcomesBaccaratCoup lastOutcome = results[i - j].OutcomeCoup; for (; j < Follow_Length; j++) { if (results[i - j - 1].OutcomeCoup != lastOutcome) { break; } } if (j == Follow_Length) { if (lastOutcome != OutcomesBaccaratCoup.T) { Follow_BetPlacement = lastOutcome; } } if (Follow_BetPlacement != OutcomesBaccaratCoup.None) { if (MoneyManager(scoreShoe.TotalScore, sessionTotalScore, betProgression, mmShoe, mmBankroll)) { return(OutcomesBaccaratCoup.Break); } ResultBaccaratCoup result = results[i]; OutcomesBaccaratCoup betPlacement = Follow_BetPlacement; result.CoupBet.BetPlacement = betPlacement; result.CoupBet.UnitBet = NextBet; OutcomesBaccaratCoup outcome = result.OutcomeCoup; if (outcome == betPlacement) { if (outcome == OutcomesBaccaratCoup.B) { scoreShoe.ScoreBankerWin(NextBet); } else if (outcome == OutcomesBaccaratCoup.P) { scoreShoe.ScorePlayerWin(NextBet); } else if (outcome == OutcomesBaccaratCoup.T) { scoreShoe.ScoreTieWin(NextBet); } result.OutcomeBet = OutcomesLastCoupBet.Win; LastBetResult = result.OutcomeBet; } else { if (outcome == OutcomesBaccaratCoup.T) { if (CustomPattern_BetPlacement != OutcomesBaccaratCoup.T) { result.OutcomeBet = OutcomesLastCoupBet.Push; LastBetResult = result.OutcomeBet; } } else { scoreShoe.ScoreLoss(NextBet, betPlacement); result.OutcomeBet = OutcomesLastCoupBet.Loss; LastBetResult = result.OutcomeBet; } } } return(Follow_BetPlacement); }
private OutcomesBaccaratCoup StrategyCore_OppositeN(int i, List <ResultBaccaratCoup> results, ScoreBaccarat scoreShoe, decimal sessionTotalScore, BetProgressionCore betProgression, MoneyManagementShoe mmShoe, MoneyManagementBankroll mmBankroll) { if (i < CustomOpposite_Length) { return(OutcomesBaccaratCoup.Continue); } OutcomesBaccaratCoup outcomeN = results[i - CustomOpposite_Length].OutcomeCoup; if (outcomeN == OutcomesBaccaratCoup.T) { return(OutcomesBaccaratCoup.Continue); } if (MoneyManager(scoreShoe.TotalScore, sessionTotalScore, betProgression, mmShoe, mmBankroll)) { return(OutcomesBaccaratCoup.Break); } ResultBaccaratCoup result = results[i]; OutcomesBaccaratCoup betPlacement; if (outcomeN == OutcomesBaccaratCoup.B) { betPlacement = OutcomesBaccaratCoup.P; } else { betPlacement = OutcomesBaccaratCoup.B; } result.CoupBet.BetPlacement = betPlacement; result.CoupBet.UnitBet = NextBet; OutcomesBaccaratCoup outcome = result.OutcomeCoup; if (betPlacement == outcome) { if (outcome == OutcomesBaccaratCoup.B) { scoreShoe.ScoreBankerWin(NextBet); } else { scoreShoe.ScorePlayerWin(NextBet); } result.OutcomeBet = OutcomesLastCoupBet.Win; LastBetResult = OutcomesLastCoupBet.Win; } else { if (outcome == OutcomesBaccaratCoup.T) { result.OutcomeBet = OutcomesLastCoupBet.Push; LastBetResult = OutcomesLastCoupBet.Push; } else { scoreShoe.ScoreLoss(NextBet, betPlacement); result.OutcomeBet = OutcomesLastCoupBet.Loss; LastBetResult = OutcomesLastCoupBet.Loss; } } return(betPlacement); }
private OutcomesBaccaratCoup StrategyCore_TieAlways(int i, List <ResultBaccaratCoup> results, ScoreBaccarat scoreShoe, decimal sessionTotalScore, BetProgressionCore betProgression, MoneyManagementShoe mmShoe, MoneyManagementBankroll mmBankroll) { if (MoneyManager(scoreShoe.TotalScore, sessionTotalScore, betProgression, mmShoe, mmBankroll)) { return(OutcomesBaccaratCoup.Break); } ResultBaccaratCoup result = results[i]; OutcomesBaccaratCoup betPlacement = OutcomesBaccaratCoup.T; result.CoupBet.BetPlacement = betPlacement; result.CoupBet.UnitBet = NextBet; OutcomesBaccaratCoup outcome = result.OutcomeCoup; if (outcome == OutcomesBaccaratCoup.T) { scoreShoe.ScoreTieWin(NextBet); result.OutcomeBet = OutcomesLastCoupBet.Win; LastBetResult = OutcomesLastCoupBet.Win; } else { scoreShoe.ScoreLoss(NextBet, betPlacement); result.OutcomeBet = OutcomesLastCoupBet.Loss; LastBetResult = OutcomesLastCoupBet.Loss; } return(betPlacement); }
private OutcomesBaccaratCoup StrategyCore_None(int i, List <ResultBaccaratCoup> results, ScoreBaccarat scoreShoe, decimal sessionTotalScore, BetProgressionCore betProgression, MoneyManagementShoe mmShoe, MoneyManagementBankroll mmBankroll) { if (MoneyManager(scoreShoe.TotalScore, sessionTotalScore, betProgression, mmShoe, mmBankroll)) { return(OutcomesBaccaratCoup.Break); } ResultBaccaratCoup result = results[i]; OutcomesBaccaratCoup betPlacement = OutcomesBaccaratCoup.None; result.CoupBet.BetPlacement = betPlacement; result.CoupBet.UnitBet = NextBet; return(betPlacement); }