예제 #1
0
    // Called when the player is dealt a card and when a card
    // is moved to the next line after splitting.
    void placePlayerCard(card_t card, int line)
    {
        if (soundOn)
        {
            audioSource.clip = placeCardAudioClip;
            audioSource.Play();
        }

        playerTotal[line]         += card.value;
        playerTotalText[line].text = playerTotal[line].ToString();

        cardLine[line][playerCardPos[line]].sprite = card.pic;
        playerCardPos[line]++;

        numPlayerCards[line]++;

        if (card.rank == card_rank.ace)
        {
            numPlayerAces[line]++;
        }

        // save rank of first and second card dealt to player to check for split opportunity
        if (!hasFirstCard[line])
        {
            firstCard[line]    = card;
            hasFirstCard[line] = true;
        }
        else if (!hasSecondCard[line])
        {
            secondCard[line]    = card;
            hasSecondCard[line] = true;
        }
    }
예제 #2
0
    public deckofcards()
    {
        int card = 0;

        foreach (card_suit suit in Enum.GetValues(typeof(card_suit)))
        {
            foreach (card_rank rank in Enum.GetValues(typeof(card_rank)))
            {
                cards[card] = new card_t(suit, rank);
                card++;
            }
        }

        remaining_cards = TOTAL_CARDS;
        top_card        = 0;
    }
예제 #3
0
    public void printCard(card_t card)
    {
        string card_code = "";

        switch (card.rank)
        {
        case card_rank.two: card_code += "2"; break;

        case card_rank.three: card_code += "3"; break;

        case card_rank.four: card_code += "4"; break;

        case card_rank.five: card_code += "5"; break;

        case card_rank.six: card_code += "6"; break;

        case card_rank.seven: card_code += "7"; break;

        case card_rank.eight: card_code += "8"; break;

        case card_rank.nine: card_code += "9"; break;

        case card_rank.ten: card_code += "T"; break;

        case card_rank.jack: card_code += "J"; break;

        case card_rank.queen: card_code += "Q"; break;

        case card_rank.king: card_code += "K"; break;

        case card_rank.ace: card_code += "A"; break;
        }

        switch (card.suit)
        {
        case card_suit.clubs: card_code += "C"; break;

        case card_suit.diamonds: card_code += "D"; break;

        case card_suit.hearts: card_code += "H"; break;

        case card_suit.spades: card_code += "S"; break;
        }

        Debug.Log(card_code + " " + card.pic.name);
    }
예제 #4
0
    // Used when splitting cards to remove the split card from
    // the current line after adding it to the next line.
    void removeSecondPlayerCard(card_t card, int line)
    {
        playerTotal[line]         -= card.value;
        playerTotalText[line].text = playerTotal[line].ToString();
        playerCardPos[line]--;
        cardLine[line][playerCardPos[line]].sprite = Resources.Load <Sprite>("card_images/black_card");

        numPlayerCards[line]--;

        if (card.rank == card_rank.ace)
        {
            // we only call this when splitting doubles, so first card is also an ace
            // return it to its initial value
            playerTotal[line]         += 10;
            playerTotalText[line].text = playerTotal[line].ToString();
        }

        hasSecondCard[line] = false;
    }
예제 #5
0
    private void swapCards(card_t card1, card_t card2)
    {
        card_suit temp_suit;
        card_rank temp_rank;
        int       temp_val;
        Sprite    temp_pic;

        temp_suit = card1.suit;
        temp_rank = card1.rank;
        temp_val  = card1.value;
        temp_pic  = card1.pic;

        card1.suit  = card2.suit;
        card1.rank  = card2.rank;
        card1.value = card2.value;
        card1.pic   = card2.pic;

        card2.suit  = temp_suit;
        card2.rank  = temp_rank;
        card2.value = temp_val;
        card2.pic   = temp_pic;
    }
예제 #6
0
 // Deal next card in the deck to the dealer without
 // showing it, keep it hidden until dealer's turn.
 void dealHoleCardToDealer()
 {
     dealerHoleCard = Deck.getNextCard();
 }