コード例 #1
0
        private void StartDealerTurn()
        {
            // unhide dealer's first card
            Card hiddenCard = dealer.scorerData.hands[0].handCards[0];

            hiddenCard.cardData.isHidden = false;
            Sprite cardSprite;

            if (GetCardSprite(hiddenCard.cardData.suit, hiddenCard.cardData.rank, out cardSprite))
            {
                hiddenCard.Initialize(cardSprite, hiddenCard.cardData);
            }

            dealer.UpdateScore();

            // dealer must keep drawing cards when score is below 17
            while (dealer.scorerData.hands[0].score < 17)
            {
                DealCard(dealer, false);
                dealer.UpdateScore();
            }

            if (dealer.scorerData.hands[0].score <= 21)
            {
                dealer.SetHandState(HandState.Stand);
            }
        }
コード例 #2
0
        private void DealCard(Scorer scorer, bool isHidden)
        {
            CardData cardData;

            if (deck.GetTopCard(out cardData))
            {
                cardData.isHidden = isHidden;
                Sprite cardSprite = backsideSprite;
                if (isHidden || GetCardSprite(cardData.suit, cardData.rank, out cardSprite))
                {
                    Card card = cardPool.Create(Vector3.zero, Quaternion.identity);
                    card.Initialize(cardSprite, cardData);

                    scorer.AddCard(card);

                    cardsDealt.Add(card);
                }
            }
        }