summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/common.c31
-rw-r--r--src/common.h10
-rw-r--r--src/main.c3
3 files changed, 43 insertions, 1 deletions
diff --git a/src/common.c b/src/common.c
new file mode 100644
index 0000000..d676f12
--- /dev/null
+++ b/src/common.c
@@ -0,0 +1,31 @@
+#include "common.h"
+
+int cardpoints(card c)
+{
+ int rem = c % 10;
+ int div = c / 10;
+
+ if(rem == div)
+ return (rem==5)?7:5;
+
+ if(rem == 5)
+ return 2;
+ else if(rem == 0)
+ return 3;
+
+ return 1;
+}
+
+int stackpoints(cardstack s)
+{
+ int points = 0;
+ for(int i=0; i<MAX_CARDSTACK_SIZE; i++)
+ {
+ card cur = s[i];
+ if(cur > 0)
+ points += cardpoints(cur);
+ }
+
+ return points;
+}
+
diff --git a/src/common.h b/src/common.h
new file mode 100644
index 0000000..13fcf7c
--- /dev/null
+++ b/src/common.h
@@ -0,0 +1,10 @@
+#define MAX_CARDSTACK_SIZE 5
+#define MAX_CARDHAND_SIZE 10
+
+typedef char card;
+typedef card cardstack[5];
+typedef card hand[10];
+
+int cardpoints(card c);
+int stackpoints(cardstack s);
+
diff --git a/src/main.c b/src/main.c
index d7b2613..ea622ec 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,8 +1,9 @@
#include <stdio.h>
#include <stdlib.h>
+#include "common.h"
int main(int argc, char **argv)
{
- printf("oxen\n");
+ printf("55:%d, 42:%d, 11:%d, 100:%d, 85:%d\n", cardpoints(55), cardpoints(42), cardpoints(11), cardpoints(100), cardpoints(85));
return EXIT_SUCCESS;
}