/* * card.cpp * * */ #include "card.h" Card::Card(void) : type(""), rank(0) { } Card::Card(string &str) { type = str; } string Card::getType(void) { return type; } void Card::rankCard(void) { char c; c = getType()[0]; switch (c) { case 'A': rank = 13; break; case 'K': rank = 12; break; case 'Q': rank = 11; break; case 'J': rank = 10; break; case 'T': rank = 9; break; case '9': rank = 8; break; case '8': rank = 7; break; case '7': rank = 6; break; case '6': rank = 5; break; case '5': rank = 4; break; case '4': rank = 3; break; case '3': rank = 2; break; case '2': rank = 1; break; default: std::cerr << "something went wrong while ranking a card" << endl; break; } } enum Suit Card::getSuit(void) { enum Suit whatSuit = Undef; char c = type[1]; switch (c) { case 'C': whatSuit = Clubs; break; case 'D': whatSuit = Diamond; break; case 'H': whatSuit = Hearts; break; case 'S': whatSuit = Spades; break; default: cout << "could not determine the suit of the card" << endl; } return whatSuit; } void Card::sortCards(Card **cards) { if (cards == NULL) { PRINT_COLOR(ANSI_COLOR_RED, "\nsortCards(): cards parameter is NULL!\n"); return; } /* reverse bubble sort */ int i, j; Card *tmp; for (i = 0; i < 5; i++) for (j = 0; j < 5-i-1; j++) if (cards[j]->rank < cards[j+1]->rank) { tmp = cards[j]; cards[j] = cards[j+1]; cards[j+1] = tmp; } }