From c076d1849d9ec07b87cde212d8db12dc890dc811 Mon Sep 17 00:00:00 2001 From: Mario Kilies Date: Tue, 4 Jan 2011 20:13:39 +0100 Subject: Splitted up content from common.* to separate files (card.[ch], cardstack.[ch] and hand.h) --- src/card.c | 12 ++++++++++++ src/card.h | 10 ++++++++++ src/cardstack.c | 14 ++++++++++++++ src/cardstack.h | 13 +++++++++++++ src/common.c | 25 ------------------------- src/common.h | 16 ---------------- src/hand.h | 10 ++++++++++ src/main.c | 4 ++-- 8 files changed, 61 insertions(+), 43 deletions(-) create mode 100644 src/card.c create mode 100644 src/card.h create mode 100644 src/cardstack.c create mode 100644 src/cardstack.h delete mode 100644 src/common.c delete mode 100644 src/common.h create mode 100644 src/hand.h diff --git a/src/card.c b/src/card.c new file mode 100644 index 0000000..73808a4 --- /dev/null +++ b/src/card.c @@ -0,0 +1,12 @@ +#include "card.h" +#include + +uint32_t card_get_points(const card c) +{ + assert(c > 0 && c <= 105); + if (55 == c) return 7; // Card 55 is worth of 7 points + if (c % 11 == 0) return 5; // Cards that are multiples of 11 are worth 5 points + if (c % 10 == 0) return 3; // ... 10 are worth 3 points + if (c % 5 == 0) return 2; // ... 5 are worth 2 points + return 1; // All other cards are worth 1 point +} diff --git a/src/card.h b/src/card.h new file mode 100644 index 0000000..2ec3ea4 --- /dev/null +++ b/src/card.h @@ -0,0 +1,10 @@ +#ifndef OXEN_CARD_H +#define OXEN_CARD_H + +#include + +typedef char card; + +uint32_t card_get_points(const card c); + +#endif // OXEN_CARD_H diff --git a/src/cardstack.c b/src/cardstack.c new file mode 100644 index 0000000..a623b1b --- /dev/null +++ b/src/cardstack.c @@ -0,0 +1,14 @@ +#include "cardstack.h" + +uint32_t cardstack_get_points(const cardstack s) +{ + uint32_t points = 0; + + for(int i = 0; i < MAX_CARDSTACK_SIZE; i++) + { + if(s[i] > 0) + points += card_get_points(s[i]); + } + + return points; +} diff --git a/src/cardstack.h b/src/cardstack.h new file mode 100644 index 0000000..d77996d --- /dev/null +++ b/src/cardstack.h @@ -0,0 +1,13 @@ +#ifndef OXEN_CARDSTACK_H +#define OXEN_CARDSTACK_H + +#include +#include "card.h" + +#define MAX_CARDSTACK_SIZE 5 + +typedef card cardstack[MAX_CARDSTACK_SIZE]; + +uint32_t cardstack_get_points(const cardstack s); + +#endif // OXEN_CARDSTACK_H diff --git a/src/common.c b/src/common.c deleted file mode 100644 index 89841c4..0000000 --- a/src/common.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "common.h" -#include - -uint32_t cardpoints(const card c) -{ - assert(c > 0 && c <= 105); - if (55 == c) return 7; // Card 55 is worth of 7 points - if (c % 11 == 0) return 5; // Cards that are multiples of 11 are worth 5 points - if (c % 10 == 0) return 3; // ... 10 are worth 3 points - if (c % 5 == 0) return 2; // ... 5 are worth 2 points - return 1; // All other cards are worth 1 point -} - -uint32_t stackpoints(const cardstack s) -{ - uint32_t points = 0; - - for(uint32_t i = 0; i < MAX_CARDSTACK_SIZE; i++) - { - if(s[i] > 0) - points += cardpoints(s[i]); - } - - return points; -} diff --git a/src/common.h b/src/common.h deleted file mode 100644 index 5bd31f7..0000000 --- a/src/common.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef OXEN_COMMON_H -#define OXEN_COMMON_H - -#include - -#define MAX_CARDSTACK_SIZE 5 -#define MAX_HAND_SIZE 10 - -typedef char card; -typedef card cardstack[MAX_CARDSTACK_SIZE]; -typedef card hand[MAX_HAND_SIZE]; - -uint32_t cardpoints(const card c); -uint32_t stackpoints(const cardstack s); - -#endif // OXEN_COMMON_H diff --git a/src/hand.h b/src/hand.h new file mode 100644 index 0000000..9268fd8 --- /dev/null +++ b/src/hand.h @@ -0,0 +1,10 @@ +#ifndef OXEN_HAND_H +#define OXEN_HAND_H + +#include "card.h" + +#define MAX_HAND_SIZE 10 + +typedef card hand[MAX_HAND_SIZE]; + +#endif // OXEN_HAND_H diff --git a/src/main.c b/src/main.c index a072572..849b727 100644 --- a/src/main.c +++ b/src/main.c @@ -3,7 +3,7 @@ #include #include #include "display.h" -#include "common.h" +#include "card.h" int main(int argc, char **argv) { @@ -14,7 +14,7 @@ int main(int argc, char **argv) display_fini(); for (int i = 1; i <= 105; i++) - printf("%d:%d\n", i, cardpoints(i)); + printf("%d:%d\n", i, card_get_points(i)); return EXIT_SUCCESS; } -- cgit v1.2.3