diff options
| -rw-r--r-- | src/common.c | 31 | ||||
| -rw-r--r-- | src/common.h | 10 | ||||
| -rw-r--r-- | src/main.c | 3 |
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); + @@ -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; } |
