Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
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;
}
Ejemplo n.º 3
0
Archivo: life.c Proyecto: dusoran/life
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;
}
Ejemplo n.º 4
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;
}