| @@ -1,11 +1,67 @@ | |||
| #include <iostream> | |||
| #include "base.h" | |||
| void Hand::draw(void) { | |||
| void Hand::draw(bool holeCardShown) { | |||
| for (auto it : cards) { | |||
| std::cout << card[it].utf8() << std::endl; | |||
| std::cout << " _____ "; | |||
| } | |||
| std::cout << std::endl; | |||
| unsigned int i = 0; | |||
| for (auto it : cards) { | |||
| if (holeCardShown || i != 1) { | |||
| std::cout << "|" << card[it].getNumberASCII() << ((card[it].number != 10)?" ":"") << " | "; | |||
| } else { | |||
| std::cout << "|#####| "; | |||
| } | |||
| i++; | |||
| } | |||
| std::cout << std::endl; | |||
| i = 0; | |||
| for (auto it : cards) { | |||
| if (holeCardShown || i != 1) { | |||
| std::cout << "| | "; | |||
| } else { | |||
| std::cout << "|#####| "; | |||
| } | |||
| i++; | |||
| } | |||
| std::cout << std::endl; | |||
| i = 0; | |||
| for (auto it : cards) { | |||
| if (holeCardShown || i != 1) { | |||
| std::cout << "| " << card[it].getSuitUTF8() << " | "; | |||
| } else { | |||
| std::cout << "|#####| "; | |||
| } | |||
| i++; | |||
| } | |||
| std::cout << std::endl; | |||
| i = 0; | |||
| for (auto it : cards) { | |||
| if (holeCardShown || i != 1) { | |||
| std::cout << "| | "; | |||
| } else { | |||
| std::cout << "|#####| "; | |||
| } | |||
| i++; | |||
| } | |||
| std::cout << std::endl; | |||
| i = 0; | |||
| for (auto it : cards) { | |||
| if (holeCardShown || i != 1) { | |||
| std::cout << "|___" << ((card[it].number != 10)?"_":"") << card[it].getNumberASCII() << "| "; | |||
| } else { | |||
| std::cout << "|#####| "; | |||
| } | |||
| i++; | |||
| } | |||
| std::cout << std::endl; | |||
| return; | |||
| @@ -86,12 +86,12 @@ class Card { | |||
| // TODO: delete copy & move | |||
| // TODO: decidir si conviene usar getters o public members | |||
| /* | |||
| Suit getSuit() { return suit; }; | |||
| unsigned int getNumber() { return number; }; | |||
| unsigned int getValue() { return value; }; | |||
| */ | |||
| // std::string get | |||
| std::string getNumberASCII() { return numberASCII; }; | |||
| std::string getSuitUTF8() { return suitUTF8; }; | |||
| Suit suit; | |||
| unsigned int number; | |||
| @@ -152,7 +152,7 @@ class Hand { | |||
| return (total() > 21); | |||
| } | |||
| void draw(); | |||
| void draw(bool = true); | |||
| }; | |||
| class PlayerHand : public Hand { | |||
| @@ -151,7 +151,8 @@ void Blackjack::deal(Player *player) { | |||
| holeCard = dealCard(&hand); | |||
| std::cout << "card_dealer_hole" << std::endl; | |||
| // TODO: print (draw) the hand | |||
| hand.draw(hand.holeCardShown); | |||
| player->currentHand->draw(); | |||
| // step 7.a. if the upcard is an ace ask for insurance | |||
| if (card[upCard].value == 11) { | |||