summaryrefslogtreecommitdiffstats
path: root/card.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'card.cpp')
-rw-r--r--card.cpp91
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;
+ }
+}
+