diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-02-11 23:52:18 -0600 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-02-11 23:52:18 -0600 |
commit | 53f018de3c6db90ed120e9993c656e23836874ae (patch) | |
tree | c15ae974a6dd66895f54d5d8f46ff4f255056684 /drunkard.c | |
parent | 063f4f854b1274d306c75f5737cccccfc51d8b52 (diff) |
functioning mvp
Diffstat (limited to 'drunkard.c')
-rw-r--r-- | drunkard.c | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/drunkard.c b/drunkard.c deleted file mode 100644 index 2427249..0000000 --- a/drunkard.c +++ /dev/null @@ -1,77 +0,0 @@ -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <time.h> - -#define HEIGHT 50 -#define WIDTH 50 -#define MAX_STEPS 50 -#define NUM_WALKERS 100 - -enum direction { - UP, - LEFT, - RIGHT, - DOWN, - NUM_DIRS, -}; - -struct point { - int x; - int y; -}; - -int main(void) -{ - bool map[HEIGHT][WIDTH]; - for (int i = 0; i < HEIGHT; ++i) { - for (int j = 0; j < WIDTH; ++j) { - map[i][j] = false; - } - } - - int start_x = WIDTH / 2; - int start_y = HEIGHT / 2; - - int open_tiles = 1; - struct point open[HEIGHT * WIDTH]; - struct point p = {.x = start_x, .y = start_y}; - open[0] = p; - - srand(time(NULL)); - - for (int i = 0; i < NUM_WALKERS; ++i) { - struct point curr_point = open[rand() % open_tiles]; - int x_pos = curr_point.x; - int y_pos = curr_point.y; - - for (int j = 0; j < MAX_STEPS && x_pos < WIDTH && x_pos >= 0 && - y_pos < HEIGHT && y_pos >= 0; - ++j) { - if (!map[y_pos][x_pos]) { - map[y_pos][x_pos] = true; - struct point p = {.x = x_pos, .y = y_pos}; - open[open_tiles++] = p; - } - enum direction dir = rand() % NUM_DIRS; - switch (dir) { - case UP : --y_pos; break; - case LEFT : --x_pos; break; - case RIGHT : ++x_pos; break; - case DOWN : ++y_pos; break; - default : exit(EXIT_FAILURE); // should not occur - } - } - } - - for (int i = 0; i < HEIGHT; ++i) { - for (int j = 0; j < WIDTH; ++j) { - if (map[i][j]) { - printf("#"); - } else { - printf("."); - } - } - printf("\n"); - } -} |