diff options
Diffstat (limited to 'card.cpp')
-rw-r--r-- | card.cpp | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/card.cpp b/card.cpp new file mode 100644 index 0000000..36704b8 --- /dev/null +++ b/card.cpp @@ -0,0 +1,91 @@ +/* + * 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; + } +} + +void Card::sortCards(Card **cards) +{ + /* 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; + } +} + |