Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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);

}