first commit
This commit is contained in:
commit
b21675e7c3
5
build.sh
Executable file
5
build.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -xe
|
||||
|
||||
gcc -Wall -Wextra -o main main.c
|
87
main.c
Normal file
87
main.c
Normal file
@ -0,0 +1,87 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user