void playBlackJack(struct Player* player, struct Player* dealer) { int i; printFramedText("Game start"); printf("\n"); initPlayer(player, FALSE); initPlayer(dealer, TRUE); shuffleCards(&s_cardDeck); for(i = 0; i < 2; i++) { drawCard(player); } for(i = 0; i < 2; i++) { drawCard(dealer); } showCards(player, dealer); // In case of same card, ask if player splits card. if(canSplitCard(player)){ if(getUserDecision("You have two same number cards. Split card ?")) { printFramedText("Player split card"); printf("\n"); splitCard(player); showCards(player, dealer); } } // Player draw card. while(player->isStand == FALSE) { if(player->isSplit) printf("[Slot %d] ", (int)getCurrentSlotID(player)); if(getUserDecision("Draw one more card ?")) { printFramedText("Player draw card"); printf("\n"); drawCard(player); showCards(player, dealer); } else { struct CardSlot* slot = getCurrentSlot(player); slot->isEndDraw = TRUE; } player->isStand = isStand(player); } // Dealer draw card. while(isStand(dealer) == FALSE) { drawCard(dealer); } dealer->isStand = TRUE; // Show play result. printFramedText("Dealer draw card"); printf("\n"); showCards(player, dealer); printPlayResult(player, dealer); onGameEnd(); }
void GameMain::createCards() { _cards.clear(); for(int i=1;i<=13;i++){ _cards.pushBack(Card::createWithTypeANumber(Card::CardType::HEART,i)); _cards.pushBack(Card::createWithTypeANumber(Card::CardType::SPADE,i)); _cards.pushBack(Card::createWithTypeANumber(Card::CardType::DIAMOND,i)); _cards.pushBack(Card::createWithTypeANumber(Card::CardType::CLUB,i)); } shuffleCards(); }
void testCardDeal() { Player p1, p2; p1.name = "Player 1"; p2.name = "Player 2"; Card deck[DECK_SIZE]; initDeck(deck); cout << "-------- TESTING CARD FUNCTIONS ---------" << endl; cout << "--- ORIGINAL SORTED DECK ---" << endl << endl; displayDeck(deck); cout << endl << "--- SHUFFLED DECK ---" << endl << endl; shuffleCards(deck, DECK_SIZE); displayDeck(deck); drawHand(deck, p1); drawHand(deck, p2); cout << endl << "--- PLAYER HANDS ---" << endl << endl; displayHand(p1); cout << endl << endl; displayHand(p2); cout << endl << endl; tossCardFromHand(p1.hand[2], p1); tossCardFromHand(p2.hand[2], p2); cout << endl << "--- PLAYER HANDS ---" << endl << endl; displayHand(p1); cout << endl << endl; displayHand(p2); cout << endl << endl; drawCard(deck, p1); drawCard(deck, p2); cout << endl << "--- PLAYER HANDS ---" << endl << endl; displayHand(p1); cout << endl << endl; displayHand(p2); cout << endl << endl; }
void RandomNum::shuffleCards(vector<int> &cards) { if (cards.size()==0) { cout << endl; cin.get(); return; } int randNum = rand()%cards.size(); int temp = cards[randNum]; cards[randNum]=cards[0]; cards[0]=temp; cout << temp << ","; vector<int> remainder(cards.begin()+1, cards.end()); shuffleCards(remainder); }