int main(void) { initscr(); noecho(); noecho(); curs_set(0); int grid[COLS][LINES]; init_life (grid); printgrid (grid); for (;;) { run_life (grid); printgrid (grid); refresh(); if (gameover(grid) == 0) break; usleep (50000); } refresh(); endwin(); return 0; }
int main() { cleargrid(); printgrid(); char gridsquare = -5; char whereinsquare = -5; startturn: gridsquare = returnlocation("Which grid do you want to start in?\n"); whereinsquare = returnlocation("Where do you wish to play in that grid?\n"); if (locationtaken(gridsquare,whereinsquare)) {goto startturn;} return 0; }
int main(int argc, char* argv[]) { if (argc != 5) { fprintf(stderr, "Usage: %s N input_file iterations output_file\n", argv[0]); return 1; } int N = atoi(argv[1]); // grid size int iterations = atoi(argv[3]); FILE* input = fopen(argv[2], "r"); char* grid = (char*) malloc(N * N * sizeof(char)); for (int i = 0; i < N; ++i) { fscanf(input, "%s", grid + i * N); } fclose(input); char* buf = (char*) malloc(N * N * sizeof(char)); for (int iter = 0; iter < iterations; ++iter) { for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { int alive_count = 0; for (int di = -1; di <= 1; ++di) { for (int dj = -1; dj <= 1; ++dj) { if ((di != 0 || dj != 0) && grid[toindex(i + di, j + dj, N)] == ALIVE) { ++alive_count; } } } int current = i * N + j; if (alive_count == 3 || (alive_count == 2 && grid[current] == ALIVE)) { buf[current] = ALIVE; } else { buf[current] = DEAD; } } } char* tmp = grid; grid = buf; buf = tmp; } FILE* output = fopen(argv[4], "w"); printgrid(grid, buf, output, N); fclose(output); free(grid); free(buf); return 0; }
int btr(int x,int y) { int i; if(x==X) { x=0,y++; if(y==Y) { printgrid(); return 1; } } if(grid[x][y]<0) return btr(x+1,y); for(i=0;i<N;i++) if(!taken[i]) { grid[x][y]=i; taken[i]=1; if(!ok(x+1,y+1) || !ok(x,y+1) || !ok(x+1,y) || !ok(x,y)) goto fail; if(btr(x+1,y)) return 1; fail: taken[i]=0; grid[x][y]=255; } return 0; }