| #include <iostream> | #include <iostream> | ||||
| #include "base.h" | #include "base.h" | ||||
| void Hand::draw(void) { | |||||
| void Hand::draw(bool holeCardShown) { | |||||
| for (auto it : cards) { | 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; | return; | ||||
| // TODO: delete copy & move | // TODO: delete copy & move | ||||
| // TODO: decidir si conviene usar getters o public members | // TODO: decidir si conviene usar getters o public members | ||||
| /* | |||||
| Suit getSuit() { return suit; }; | Suit getSuit() { return suit; }; | ||||
| unsigned int getNumber() { return number; }; | unsigned int getNumber() { return number; }; | ||||
| unsigned int getValue() { return value; }; | unsigned int getValue() { return value; }; | ||||
| */ | |||||
| // std::string get | |||||
| std::string getNumberASCII() { return numberASCII; }; | |||||
| std::string getSuitUTF8() { return suitUTF8; }; | |||||
| Suit suit; | Suit suit; | ||||
| unsigned int number; | unsigned int number; | ||||
| return (total() > 21); | return (total() > 21); | ||||
| } | } | ||||
| void draw(); | |||||
| void draw(bool = true); | |||||
| }; | }; | ||||
| class PlayerHand : public Hand { | class PlayerHand : public Hand { |
| holeCard = dealCard(&hand); | holeCard = dealCard(&hand); | ||||
| std::cout << "card_dealer_hole" << std::endl; | 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 | // step 7.a. if the upcard is an ace ask for insurance | ||||
| if (card[upCard].value == 11) { | if (card[upCard].value == 11) { |