]> wirehaze git hosting - lifeboot.git/blob - prototype.c

wirehaze git hosting

405654e5741109820dc367ecc75be18917c47dc6
[lifeboot.git] / prototype.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5 #define COLS 80
6 #define ROWS 25
7
8 #define DEAD ' '
9 #define ALIVE '#'
10
11 #define INIT_RATIO 10
12
13 #define STR(x) _STR(x)
14 #define _STR(x) #x
15
16 static void clearscr() {
17 printf("\e[1;1H\e[2J");
18 }
19
20 static void print_row(char row[COLS]) {
21 printf("%." STR(COLS) "s\n", row);
22 }
23
24 static void print_grid(char grid[COLS * ROWS]) {
25 for (int i = 0; i < ROWS; i++)
26 print_row(grid + i * COLS);
27 }
28
29 static void init_grid(char grid[COLS * ROWS]) {
30 for (int i = 0; i < ROWS * COLS; i++) {
31 if (rand() % INIT_RATIO)
32 grid[i] = DEAD;
33 else
34 grid[i] = ALIVE;
35 }
36 }
37
38 int main () {
39 char grid[COLS * ROWS];
40
41 srand(time(0));
42 init_grid(grid);
43
44 clearscr();
45 print_grid(grid);
46
47 return 0;
48 }