// 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; } }
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; }
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); }
// 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; }
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; }
// Deal next card in the deck to the dealer without // showing it, keep it hidden until dealer's turn. void dealHoleCardToDealer() { dealerHoleCard = Deck.getNextCard(); }