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 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"; }
void BlackJack::dealerWins() { cout << " Dealer wins.\n"; hideCard = false; showCards(); player.lose(); newDeal(); }
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); }
void BlackJack::newRound() { deck.shuffle(); takeBet(); dealCards(); showCards(); while(control) { menu(); } checkWin(); newDeal(); }
void BlackJack::checkWin() { if(player.getHandTotal() > dealer.getHandTotal()) { playerWins(); } else if(dealer.getHandTotal() > player.getHandTotal()) { dealerWins(); } else { cout << " PUSH!\n\n"; showCards(); newDeal(); } }
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; } } }
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()); }