Ejemplo 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();
}
Ejemplo n.º 2
0
void BlackJack::menu()
{
    cout << "           ********************************\n"
         << "           *  h key = hit | s key = stay  *\n"
         << "           ********************************\n"
         << "           Enter: ";

    char choice;
    cin >> choice;

    switch (tolower(choice)) {
    case 'h':

        playerHit();
        showCards();
        control = true; // Run menu() again.
        break;

    case 's':

        dealerHit();
        hideCard = false; // Player's turn is complete. Show dealer's hand.
        control = false; // menu() terminates.
        break;

    default:

        cout << "\n  Enter a valid option.";
        control = true; // Run menu() again.
        break;
    }

    cout << "\n";
}
Ejemplo n.º 3
0
void BlackJack::dealerWins()
{
    cout << "       Dealer wins.\n";
    hideCard = false;
    showCards();
    player.lose();
    newDeal();
}
Ejemplo n.º 4
0
void BlackJack::playerWins()
{
    cout << "       Player wins!\n";
    hideCard = false;
    showCards();
    player.win();
    newDeal();
}
void showPlayerCards(const Card* cards,int player,int numOfPlayers)
{
 int start = player*5;
 int end = start + 4;
 if(player<numOfPlayers-1){
  printf("玩家%d\t:",player);
 }else{
  printf("自己\t:");
 }
 showCards(cards,start,end);
}
Ejemplo n.º 6
0
void BlackJack::newRound()
{ 
    deck.shuffle();
    takeBet();
    dealCards();
    showCards();

    while(control) {
        menu();
    }

    checkWin();
    newDeal();
}
Ejemplo n.º 7
0
void BlackJack::checkWin()
{
    if(player.getHandTotal() > dealer.getHandTotal()) {
        playerWins();
    }
    else if(dealer.getHandTotal() > player.getHandTotal()) {
        dealerWins();
    }
    else {
        cout << "       PUSH!\n\n";
        showCards();
        newDeal();
    }
}
Ejemplo n.º 8
0
void SGHelpLayer::itemselect(SNSTableView* tableView, SNSIndexPath* indexPath)
{
    EFFECT_PLAY(MUSIC_BTN);

    
    int index = tableView->getItemPointerWithIndexPath(indexPath);
    
    if (true /*SGPlayerInfo::sharePlayerInfo()->getPlayerLevel() >= 10*/)
    {
        switch (index)
        {
            case SGSFT_GALLERY:
            {
                showCards();
            }
                break;
            case SGSFT_FRIEND:
            {
                showFriendFunc();
            }
                break;
            case SGSFT_SETTING:
            {
                playerSet();
            }
                break;
            case SGSFT_HELP:
            {
                help();
            }
                break;
            case SGSFT_ADVICE:
            {
                CCArray *temp = SGPlayerInfo::sharePlayerInfo()->getQAContent();
                int count=temp->count();
                //                for(int i=0;i<temp->count();i++)
                //                {
                //                    SGQAConcent * qa = (SGQAConcent*)temp->objectAtIndex(i);
                //
                //                    if(!qa->getState())
                //                    {
                //                        count ++;
                //                    }
                //                }
                //
                //
                
                if(count)
                {
                    
                    advice();
                }
                
                else
                {
                    
                    SGMainManager::shareMain()->showliuyanlayer();
                }
                
                
            }
                break;
            case SGSFT_SHARE:
            {
                //                band();
                if(SGPlayerInfo::sharePlayerInfo()->getShowvip()==SHOW_SHAREBOX_ID)
                {
                    showShareBox();
                }else{
                    enterUserCommunity();
                }
            }
                break;
            case SGSFT_FANS:
            {
                if (isTaiWanGo2Play) //台湾版本要添加fb粉丝团的直达通道。
                {
                    CCLOG("open url %s", GlobalConfig::gi()->getTaiWanFbFansGroupUrl().c_str());
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
                    OcCaller::getInstance()->openUrl(GlobalConfig::gi()->getTaiWanFbFansGroupUrl());
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
                    AndroidSDKAdp::getInstance()->openUrl(GlobalConfig::gi()->getTaiWanFbFansGroupUrl());
#else
                    ;
#endif
                }
                else
                {
                    //do nothing
                }
                break;
                //这以下是添加引流功能之前的老代码,保留待命,不执行。
                /*
                //                band();
                if(SGPlayerInfo::sharePlayerInfo()->getShowvip()==SHOW_SHAREBOX_ID)
                {
                    enterUserCommunity();
                }else{
                    change();
                }
                */
            }
                break;
            case SGSFT_RELOGIN:
            {
                change();
            }
                break;
            default:
                break;
        }
    }
}
Ejemplo n.º 9
0
void Talon::play()
{
    std::cout<<"\n--- Willkommen zum diesjärigen cgp- Kartenspiel! ---\n"
        "Das Ziel dieses Spiels ist es, alle Karten auf der Hand abzulegen.\n"
        "Sie können Karten nur in Paaren ablegen - "
        "haben sie nur einzelne Karten, müssen sie zusätzliche Karten abheben.\n"
        "Viel Spaß!\n\n";

    AskingMenu::MenuItem::item_id_t menu_choice;

    do
    {
        bool pair_existed;
        Card::card_id_t card_id;

        std::cout<<"Ihre Hand: \n"; showCards();
        menu_choice = _game_menu.ask();

        switch(menu_choice)
        {
            case MENU_DRAW:
                // draw new card
                _cardlist.push_back(Card());
                break;
            case MENU_DISCARD:

                std::cout<<"Welche Karte möchten sie ablegen? ";
                card_id = AskingMenu::getChoice();

                // check validity of card id
                if (card_id== Card::card_id_t(-1) || card_id > Card::_num_cards)
                {
                    std::cout<<"Ungültige Auswahl\n";
                    continue;
                }

                // remove card, check that it really existed
                pair_existed = removePair(card_id);
                if(!pair_existed)
                {
                    std::cout<<"Sie haben kein Paar der Karte "<<
                        Card(card_id)<<" auf der Hand!\n";
                }
                else
                {
                    std::cout<<"Karte "<<Card(card_id)<<" abgelegt.\n";
                }

                break;
            case MENU_QUIT:
                // quit game
                std::cout<<"Spiel Beendet\n";
                return;
            default:
                ;// invalid menu choice, do nothing and repeat question
        }

        std::cout<<std::endl;
        if (_cardlist.empty())
            std::cout<<"Sie haben gewonnen! Gratulation!\n";
    } while(!_cardlist.empty());
}