first commit
This commit is contained in:
		
							
								
								
									
										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);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user