コード例 #1
0
        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;
            }
        }
コード例 #2
0
ファイル: ScoreTest.cs プロジェクト: davejlin/autobetic
        public void init()
        {
            score = new ScoreBaccarat();

            Assert.AreEqual(0, score.NumberBet);
            AssertInitialValuesWin();
            AssertInitialValuesLoss();
        }
コード例 #3
0
        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;
                }
            }
            //});
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }