From c2c317bf1c0f4c0b76b396a7d33f8c6362d1d300 Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 24 Aug 2022 18:04:06 +0200 Subject: rm life.c --- examples/life.c | 84 ------------------------------------------------------- examples/life.cff | 2 +- 2 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 examples/life.c (limited to 'examples') diff --git a/examples/life.c b/examples/life.c deleted file mode 100644 index 212ece9..0000000 --- a/examples/life.c +++ /dev/null @@ -1,84 +0,0 @@ -#include - -#define W 60 -#define H 40 - -typedef unsigned char Board[W*H/8]; -static Board board; - -static _Bool -get(Board *b, unsigned x, unsigned y) { - x %= W; y %= H; - unsigned idx = x + y * W; - return (*b)[idx/8] & (1 << (idx % 8)); -} - -static void -set(Board *b, unsigned x, unsigned y, _Bool set) { - x %= W; y %= H; - unsigned idx = x + y * W; - (*b)[idx/8] &= ~(1 << (idx % 8)); - if (set) - (*b)[idx/8] |= (1 << (idx % 8)); -} - -static void -next(Board *b) { - Board temp; - memcpy(temp, &**b, sizeof temp); - for (int y = 0; y < H; ++y) - for (int x = 0; x < W; ++x) { - #define C(ox, oy) get(&temp, x + ox, y + oy) - int n = C(-1,-1) + C(0,-1) + C(1,-1) - + C(-1, 0) + C(1, 0) - + C(-1, 1) + C(0, 1) + C(1, 1); - - set(b, x, y, 0); - if (get(&temp, x, y)) - set(b, x, y, n == 3); - else if (n == 2) - set(b, x, y, 1); - else if (n == 3) - set(b, x, y, 1); - } -} - -static -void draw(Board *b) { - printf("\x1B[H\n"); - printf("\n"); - for (int y = 0; y < H; ++y) { - printf(" "); - for (int x = 0; x < W; ++x) { - if (get(b, x, y)) { - printf("W"); - } else { - printf(" "); - } - } - printf(" \n"); - } -} - - -static void -init(Board *b) { - int time(void *); - unsigned rnd = time(0); - for (int y = 0; y < H; ++y) { - for (int x = 0; x < W; ++x) { - set(b, x, y, (_Bool)((rnd >> 31) & 1)); - rnd = (rnd * 134775813) + 1; - } - } -} - -void usleep(unsigned); -int main () { - init(&board); - for (;;) { - draw(&board); - usleep(100); - next(&board); - } -} diff --git a/examples/life.cff b/examples/life.cff index e9c4dce..cbdd3e0 100644 --- a/examples/life.cff +++ b/examples/life.cff @@ -29,7 +29,7 @@ fn next(b *Board) void { + C(-1, 0) + C(1, 0) + C(-1, 1) + C(0, 1) + C(1, 1); - set(b, x, y, get(&temp, x, y) ? n == 3 : (n == 2 or n == 3)); + set(b, x, y, get(&temp, x, y) ? n == 3 : n == 2 or n == 3); } } } -- cgit v1.2.3