summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game.c40
-rw-r--r--src/game.h9
2 files changed, 49 insertions, 0 deletions
diff --git a/src/game.c b/src/game.c
new file mode 100644
index 0000000..a7e33be
--- /dev/null
+++ b/src/game.c
@@ -0,0 +1,40 @@
+#include "game.h"
+#include "card.h"
+#include <stdlib.h>
+#include <stdbool.h>
+#include <time.h>
+
+void init_mainstack(card* stack, const uint32_t size)
+{
+ // assign card values to main stack
+ for(uint32_t i=0, val=MIN_CARD; i<size; i++, val++)
+ stack[i] = val;
+
+ // shuffle stack
+ for(uint32_t i=0; i<3*size; i++)
+ {
+ uint32_t x = rand() % size;
+ uint32_t y = rand() % size;
+ card tmp = stack[x];
+ stack[x] = stack[y];
+ stack[y] = tmp;
+ }
+}
+
+void start_game(void)
+{
+ bool running = true;
+ int cards = MAX_CARD - MIN_CARD + 1;
+ card mainstack[cards];
+
+ srand(time(0));
+
+ init_mainstack(mainstack, cards);
+
+ // main game loop
+ while(running)
+ {
+
+ }
+}
+
diff --git a/src/game.h b/src/game.h
new file mode 100644
index 0000000..16743ea
--- /dev/null
+++ b/src/game.h
@@ -0,0 +1,9 @@
+#ifndef OXEN_GAME_H
+#define OXEN_GAME_H
+
+#define MIN_CARD 1
+#define MAX_CARD 104
+
+void start_game(void);
+
+#endif // OXEN_GAME_H