bool init_grid(struct grid *grid, int row, int col) { int i; int j; int x; int y; if (!fill_grid(grid, row, col)) return false; for (i = 0; i < grid->x; i++) for (j = 0; j < grid->y; j++) { grid->cell[i][j].visible = false; grid->cell[i][j].flagged = false; grid->cell[i][j].value = 0; } for (i = 0; i < grid->mines; i++) { do { x = (int)rand() % grid->x; y = (int)rand() % grid->y; } while (grid->cell[x][y].value == -1); add_mine(grid, x, y); } return true; }
void Input<T>::start(int player, int n_inputs) { reset(player); if (player == proc.P.my_num()) { for (int i = 0; i < n_inputs; i++) { T t; try { this->buffer.input(t); } catch (not_enough_to_buffer& e) { throw runtime_error("Insufficient input data to buffer"); } add_mine(t); } send_mine(); } else { for (int i = 0; i < n_inputs; i++) add_other(player); } }
void fill(int (*table)[MAXN], int n) { int i, j, val; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { scanf("%d", &val); if (val == 1) { add_mine(table, i, j, n); } } } }
void map_gen(struct map *map) { int i, j, x, y; for(i = 0; i < map->rows; ++i) for(j = 0; j < map->columns; ++j) map->Map[i][j].value = EMPTY; for(i = 0; i < map->mines; ++i) { do { x = (int)rand() % map->rows; y = (int)rand() % map->columns; } while(map->Map[x][y].value == MINE); add_mine(map, x, y); } for(i = 0; i < map->rows; ++i) for(j = 0; j < map->columns; ++j) if(map->Map[i][j].value != MINE && map->Map[i][j].value != ' ') map->Map[i][j].value += '0' - EMPTY; }