From b21675e7c36acd7095e1efdcf370d304ac291b17 Mon Sep 17 00:00:00 2001 From: Debucquoy Date: Sun, 28 May 2023 00:34:42 +0200 Subject: [PATCH] first commit --- build.sh | 5 ++++ main | Bin 0 -> 15984 bytes main.c | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100755 build.sh create mode 100755 main create mode 100644 main.c diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..4aac112 --- /dev/null +++ b/build.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +set -xe + +gcc -Wall -Wextra -o main main.c diff --git a/main b/main new file mode 100755 index 0000000000000000000000000000000000000000..fb53280c0368e3c951c26b47a0d5f47288a132b6 GIT binary patch literal 15984 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 K0|SE?0sR0x?AZVS literal 0 HcmV?d00001 diff --git a/main.c b/main.c new file mode 100644 index 0000000..c9b2724 --- /dev/null +++ b/main.c @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include + +#define WIDTH 100 +#define HEIGHT 100 + +#define true 1 +#define false 0 + +#define emod(x, y) ((((x) % (y)) + (y)) % (y)) +typedef unsigned char bool ; + +bool grid[HEIGHT][WIDTH], step[HEIGHT][WIDTH]; + +bool randb(){ + return rand() % 2; +} + +void gen_grid(){ + for(int i = 0; i < HEIGHT; i++){ + for(int j = 0; j < HEIGHT; j++){ + grid[i][j] = randb(); + } + } +} + +void draw_grid(){ + for(int i = 0; i < HEIGHT; i++){ + for(int j = 0; j < HEIGHT; j++){ + if(grid[i][j]){ + printf("\033[107m■ "); + }else{ + printf("\033[49m "); + } + } + printf("\033[0m\n"); + } +} + +void step_grid(){ + for(int i = 0; i < HEIGHT; i++){ + for(int j = 0; j < WIDTH; j++){ + + int count = 0; + for(int di = i-1; di < i+2; di++){ + for(int dj = j-1; dj < j+2; dj++){ + if(di == i && dj == j){ + continue; + } + if(grid[emod(di, HEIGHT)][emod(dj, WIDTH)]){ + count++; + } + } + } + step[i][j] = false; + if(count == 3 || (count == 2 && grid[i][j])){ + step[i][j] = true; + } + + } + } + memcpy(grid, step, sizeof(char) * HEIGHT * WIDTH); +} + +struct timespec ts = { 0, 100 * 1000}; + +int main(void) +{ + srand(time(0)); + gen_grid(); + + while(true){ + ts.tv_nsec= 10 * 1000 * 1000; + for(int i = 0; i < HEIGHT; i++){ + printf("\n"); + } + draw_grid(); + /* getchar(); */ + step_grid(); + nanosleep(&ts, NULL); + } +} + +