void World::startAge() { m_age++; m_deck = generateDeck(m_age-1); distributeCards(); #ifndef TESTING m_display.setAge(m_age); #endif // !TESTING }
void loop() { static char deck[DECK_SIZE]; static char dealerHand[HAND_SIZE]; static char hand[HAND_SIZE]; static int deckPointer = 0; static int playerScore = 0; static int dealerScore = 0; static bool first = true; static bool checkForWinner = false; if(first) { generateDeck(deck); drawHand(hand,deck, &deckPointer); drawHand(dealerHand, deck, &deckPointer); playerScore = computeScore(hand); if(playerScore == BLACKJACK) { printGameResult("Blackjack!", playerScore); resetGame(hand, dealerHand, deck, &playerScore, &dealerScore, &deckPointer, &checkForWinner); } first = false; } if(sensorValue != analogRead(A0)) { sensorValue = analogRead(A0); Button button = (Button) getButton(); switch (button) { case UP_BTN: playerScore = hit(hand,deck, &deckPointer); break; case DOWN_BTN: dealerScore = stay(dealerHand,deck, &deckPointer); checkForWinner = true; break; case LEFT_BTN: break; case RIGHT_BTN: break; case SELECT_BTN: resetGame(hand,dealerHand,deck,&playerScore,&dealerScore,&deckPointer,&checkForWinner); break; default: break; } } printCards(hand,1,0, false); if(computeScore(hand) == BLACKJACK) { printGameResult("Win!", playerScore); resetGame(hand,dealerHand,deck,&playerScore,&dealerScore,&deckPointer,&checkForWinner); } else if(computeScore(hand) == BUST) { printGameResult("Bust!", computeScoreNoBust(hand)); resetGame(hand,dealerHand,deck,&playerScore,&dealerScore,&deckPointer,&checkForWinner); } if(checkForWinner) { printCards(dealerHand, 0,0,false); if(computeScore(hand) > computeScore(dealerHand)) { printGameResult("Win!", computeScore(hand)); } else if(computeScore(hand) == computeScore(dealerHand)) { printGameResult("Tie.", computeScore(hand)); } else { printGameResult("Lose.", computeScore(hand)); } resetGame(hand,dealerHand,deck,&playerScore,&dealerScore,&deckPointer,&checkForWinner); } else { printCards(dealerHand,0,0,true); } computeScore(hand) > 9 ? lcd.setCursor(14,1) : lcd.setCursor(15,1); lcd.print(computeScore(hand)); delay(100); }