Esempio n. 1
0
        public EzBaccaratPayout(EzBaccaratBet originalBet)
        {
            this.OriginalBet = originalBet;

            this.Bet         = new EzBaccaratBet();
            this.Bet.Gambler = this.OriginalBet.Gambler;
        }
Esempio n. 2
0
        public EzBaccaratBet(EzBaccaratBet other)
        {
            this.Gambler = other.Gambler;

            this.Panda  = other.Panda;
            this.Dragon = other.Dragon;
            this.Tie    = other.Tie;
            this.Banker = other.Banker;
            this.Player = other.Player;
        }
Esempio n. 3
0
        private void OnDealCommand()
        {
            if (table.CurrentState != EzBaccaratTableState.WaitingForBets)
            {
                this.bigRoadScoreboard.Clear();
                this.bigRoadItems.Clear();
                table.GoNextState();
                return;
            }

            var bet = new EzBaccaratBet();

            bet.Gambler = player;
            bet.Panda   = this.PandaBet;
            bet.Tie     = this.TieBet;
            bet.Dragon  = this.DragonBet;
            bet.Banker  = this.BankerBet;
            bet.Player  = this.PlayerBet;

            table.Bets.Add(bet);
            table.GoNextState();

            ++this.Shoe;
            if (this.table.Dealer.IsPanda)
            {
                ++this.Panda8Count;
            }

            if (this.table.Dealer.IsTie)
            {
                ++this.TieCount;
                bigRoadScoreboard.AddScore(new EzBaccaratScoreItem()
                {
                    WinningHand = EzBaccaratWinningHand.None, IsTie = true
                });
            }

            if (this.table.Dealer.IsDragon)
            {
                ++this.Dragon7Count;
            }

            if (this.table.Dealer.IsPlayerWin)
            {
                ++this.PlayerCount;
                bigRoadScoreboard.AddScore(new EzBaccaratScoreItem()
                {
                    WinningHand = EzBaccaratWinningHand.Player
                });
            }

            if (this.table.Dealer.IsBankerWin)
            {
                ++this.BankerCount;
                bigRoadScoreboard.AddScore(new EzBaccaratScoreItem()
                {
                    WinningHand = EzBaccaratWinningHand.Banker
                });
            }

            this.bigRoadItems.Clear();
            for (var i = 0; i < bigRoadScoreboard.Items.Count; i++)
            {
                this.bigRoadItems.Add(bigRoadScoreboard.Items[i]);
            }

            UpdateDragon7Count();

            foreach (var payout in this.table.Payouts)
            {
                payout.Bet.Gambler.Put(payout.TotalWin);
            }

            this.PandaBet  = 0;
            this.TieBet    = 0;
            this.DragonBet = 0;
            this.BankerBet = 0;
            this.PlayerBet = 0;

            table.GoNextState();

            InvokePropertyChanged(string.Empty);
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            var table = new EzBaccaratTable();

            var gambler = new Gambler(true);

            gambler.Put(1000);

            for (var z = 0; z < 1000; ++z)
            {
                Debug.Assert(table.CurrentState == EzBaccaratTableState.NotReady);

                table.GoNextState();
                Debug.Assert(table.CurrentState == EzBaccaratTableState.WaitingForBets);

                EzBaccaratBet bet = new EzBaccaratBet();
                bet.Gambler = gambler;
                // bet.Gambler = new Gambler();
                // bet.Gambler.Put(1000);

                int  state   = 0;
                bool betLost = true;
                int  lastBet = 25;
                int  maxBet  = 0;
                int  rounds  = 0;

                int  bankerWins = 0;
                int  playerWins = 0;
                int  ties       = 0;
                bool bankerSide = false;

                while (true)
                {
                    Debug.Assert(table.CurrentState == EzBaccaratTableState.WaitingForBets);

                    if (betLost)
                    {
                        state      = 0;
                        lastBet    = 25;
                        bankerSide = !bankerSide;
                    }
                    else
                    {
                        switch (state)
                        {
                        case 0:
                            lastBet = 75;
                            state   = 1;
                            break;

                        case 1:
                            lastBet = 50;
                            state   = 2;
                            break;

                        case 2:
                            lastBet = 100;
                            state   = 0;
                            break;
                        }
                    }

                    betLost = false;

                    lastBet = bet.Gambler.TryGet(lastBet);
                    maxBet  = Math.Max(maxBet, lastBet);
                    if (bankerSide)
                    {
                        bet.Banker = lastBet;
                        bet.Player = 0;
                    }
                    else
                    {
                        bet.Banker = 0;
                        bet.Player = lastBet;
                    }

                    table.Bets.Add(bet);

                    table.GoNextState();

                    ++rounds;

                    string outcome = "?????";
                    if (table.Dealer.IsPlayerWin)
                    {
                        outcome = "<==  ";
                        ++playerWins;
                    }
                    else
                    {
                        if (!bankerSide)
                        {
                            betLost = true;
                        }
                    }

                    if (table.Dealer.IsBankerWin)
                    {
                        outcome = "  ==>";
                        ++bankerWins;
                    }
                    else
                    {
                        if (bankerSide)
                        {
                            betLost = true;
                        }
                    }

                    if (table.Dealer.IsTie)
                    {
                        outcome = " TIE ";
                        ++ties;

                        betLost = false;
                    }

                    if (table.Dealer.IsDragon)
                    {
                        outcome = "  =>7";
                    }

                    if (table.Dealer.IsPanda)
                    {
                        outcome = "8<=  ";
                    }

                    foreach (var payout in table.Payouts)
                    {
                        payout.Bet.Gambler.Put(payout.TotalWin);
                    }

                    if (true)
                    {
                        Console.WriteLine("Player: {0} ({1})    {2}    Banker: {3} ({4})     Balance: {5} ({6} - {7})",
                                          PrintHand(table.Dealer.PlayerHand), table.Dealer.PlayerPoints,
                                          outcome, PrintHand(table.Dealer.BankerHand), table.Dealer.BankerPoints, bet.Gambler.Money, lastBet, bankerSide ? "B" : "P");
                    }

                    table.GoNextState();
                    if (table.CurrentState == EzBaccaratTableState.GameFinished)
                    {
                        break;
                    }

                    if (bet.Gambler.Money <= 0 && false)
                    {
                        Console.WriteLine("BANKRUPT!!!!!");
                        // goto end;
                    }
                }

                table.GoNextState();

                Console.WriteLine("Rounds: {0}", rounds);
                Console.WriteLine("Player: {0} ({1:0.0%}), Banker: {2} ({3:0.0%}), Tie: {4} ({5:0.0%})", playerWins, (double)playerWins / rounds,
                                  bankerWins, (double)bankerWins / rounds, ties, (double)ties / rounds);
                Console.WriteLine("Gamble money: {0}, Max bet: {1}", bet.Gambler.Money, maxBet);
            }
            end :;
        }