Beispiel #1
0
        private void PlayHand(ref float Cash, ref float bet, float originalBet, bool trend,
                    ref bool stayBet, ref BJResults Results, Card[] Cards, ref int index,
                    int mySeat, int maxPlayers, bool doubled)
        {
            CardHand dealerHand = new CardHand(15);
            CardHand myHand = new CardHand(15);

            Betting(Cash, ref bet, originalBet, trend,
                ref stayBet, Results.movement, Cards, index);

            InitialDeal(ref Cards, ref index, ref myHand, ref dealerHand,
                mySeat, maxPlayers);

            if (ThereIsABlackJack(myHand, dealerHand, ref Cash, bet,
                ref Results, ref trend))
            {
                return;
            }

            //double-down?
            if (chkDoubleDown.Checked)
            {
                if ((dealerHand.Showing == 4 || dealerHand.Showing == 5 ||
                    dealerHand.Showing == 6) && (myHand.Total == 10 ||
                    myHand.Total == 11))
                {
                    if (Cash > bet * 2)
                    {
                        bet = bet * 2;
                        doubled = true;
                    }
                }
            }

            HitStayBust(ref Cards, ref index, ref myHand, ref dealerHand,
                maxPlayers, mySeat, doubled);

            WrapUp(myHand, dealerHand, ref Cash, bet, ref Results);

            if (doubled)
            {
                bet /= 2;
                doubled = false;
            }
        }
Beispiel #2
0
        private void WrapUp(CardHand myHand, CardHand dealerHand,
            ref float Cash, float Bet, ref BJResults Results)
        {
            //If player or dealer hit 21 on deal, we already took care of things.
            //Did we win?
            if ((myHand.Total > dealerHand.Total && myHand.Total < 22) ||
                (dealerHand.Total > 21 && myHand.Total < 22))
            {
                Cash += Bet;
                Results.wins++;
                if (Results.movement < 0)
                    Results.movement = 0;
                else
                    Results.movement++;
            }
            else if ((myHand.Total > 21) ||
                (myHand.Total < dealerHand.Total))
            {
                Cash -= Bet;
                Results.losses++;
                if (Results.movement > 0)
                    Results.movement = 0;
                else
                    Results.movement--;
            }
            else
            {
                Results.pushes++;
                //stayBet = true;
            }

            if (Cash > Results.maxCash)
                Results.maxCash = Cash;
            if (Cash < Results.minCash)
                Results.minCash = Cash;

        }
Beispiel #3
0
        private bool ThereIsABlackJack(CardHand myHand, CardHand dealerHand,
            ref float Cash, float Bet, ref BJResults Results, ref bool trend)
        {
            //Did dealer get 21?
            if (dealerHand.Total == 21)
            {
                Cash -= Bet;
                Results.dealerTwentyones++;
                trend = false;
                if (Cash < Results.minCash)
                    Results.minCash = Cash;
                if (Results.movement > 0)
                    Results.movement = 0;
                else
                    Results.movement--;
                return true;
            }
            //Did we get 21?
            if (myHand.Total == 21)
            {
                Cash += Bet * 1.5f;
                Results.myTwentyones++;
                trend = true;
                if (Cash > Results.maxCash)
                    Results.maxCash = Cash;
                if (Results.movement < 0)
                    Results.movement = 0;
                else
                    Results.movement++;
                return true;
            }

            return false;
        }
Beispiel #4
0
        private void HitStayBust(ref Card[] Cards, ref int index,
            ref CardHand myHand, ref CardHand dealerHand, int maxPlayers,
            int mySeat, bool doubled)
        {
            int stayAt = System.Convert.ToInt32(txtStayAt.Text, 10);
            bool dealerTen = System.Convert.ToBoolean(chkDealerTen.Checked);
            bool agg456 = System.Convert.ToBoolean(chk456.Checked);

            for (int dealto = 0; dealto < maxPlayers + 1; dealto++)
            {
                if (dealto == mySeat)
                {
                    if (dealerTen && dealerHand.Showing == 10)
                    {
                        stayAt = 16;
                    }
                    else if (agg456 && (dealerHand.Showing == 4 ||
                        dealerHand.Showing == 5 ||
                        dealerHand.Showing == 6))
                    {
                        stayAt = 12;
                    }
                    else
                    {
                        stayAt = stayAt;//normal
                    }

                    //take some cards (or not)
                    while (myHand.Total < stayAt)
                    {
                        myHand.AddCard(Cards[index]);
                        Cards[index].Dealt = true;
                        CountCard(Cards[index].Value);
                        index++;
                        if (doubled)
                            break;//double-down only gets one card
                    }
                }
                else if (dealto == maxPlayers)//the Dealer
                {
                    while (dealerHand.Total < 17)
                    {
                        dealerHand.AddCard(Cards[index]);
                        Cards[index].Dealt = true;
                        CountCard(Cards[index].Value);
                        index++;
                    }
                }
                else
                {
                    Random rand = new Random();
                    int burn = rand.Next(0, 3);
                    for (int b = 0; b < burn; b++)
                    {
                        Cards[index].Dealt = true;
                        CountCard(Cards[index].Value);
                        index++;
                    }
                }

            }
        }
Beispiel #5
0
        private void InitialDeal(ref Card[] Cards, ref int index,
            ref CardHand myHand, ref CardHand dealerHand,
            int mySeat, int maxPlayers)
        {
            for (int i = 0; i < 2; i++)//two cards each
            {
                for (int dealto = 0; dealto < maxPlayers + 1; dealto++)
                {
                    //count cards
                    CountCard(Cards[index].Value);

                    //Deal
                    if (dealto == mySeat)
                    {
                        myHand.Cards[i].Value = Cards[index].Value;
                        myHand.Cards[i].Suit = Cards[index].Suit;
                    }
                    else if (dealto == maxPlayers)//the Dealer
                    {
                        dealerHand.Cards[i].Value = Cards[index].Value;
                        dealerHand.Cards[i].Suit = Cards[index].Suit;
                    }
                    //else {deal this card to some random person}
                    Cards[index].Dealt = true;
                    index++;
                }
            }
        }