Example #1
0
//To move the block by 0.1 units downward
void move_down()
{
	int i,j;
	check_game_over();
	printf("moved down 1 step\n");
	if(executed==1)
	{
		for ( i = 0; i < 4 ; ++i)
		{
			if(z[i]==0) return;
		}
		for ( i = 0; i < 4 ; ++i)
		{
			current_block=tetris_board->board[CELL(x[i], y[i],z[i])];
			view_status[x[i]][y[i]][z[i]]=0;
			z[i]--;
			view_status[x[i]][y[i]][z[i]]=1;
			// current_block=set_block(global_type_block, color_block,current_block);
			tetris_board_place_block_at_boardvalue(tetris_board,current_block, CELL(x[i], y[i],z[i]),z[i]);
		}
	}
	else
	{
		printf("executed =0\n");;
	}
	printf("moved 1 step\n");

}
Example #2
0
void tb_present(void)
{
	unsigned int x,y;
	struct tb_cell *back, *front;

	/* invalidate cursor position */
	lastx = LAST_COORD_INIT;
	lasty = LAST_COORD_INIT;

	if (buffer_size_change_request) {
		update_size();
		buffer_size_change_request = 0;
	}

	for (y = 0; y < front_buffer.height; ++y) {
		for (x = 0; x < front_buffer.width; ++x) {
			back = &CELL(&back_buffer, x, y);
			front = &CELL(&front_buffer, x, y);
			if (memcmp(back, front, sizeof(struct tb_cell)) == 0)
				continue;
			send_attr(back->fg, back->bg);
			send_char(x, y, back->ch);
			memcpy(front, back, sizeof(struct tb_cell));
		}
	}
	if (!IS_CURSOR_HIDDEN(cursor_x, cursor_y))
		write_cursor(cursor_x, cursor_y);
	memstream_flush(&write_buffer);
}
Example #3
0
void move_block_down()
{
	executed=0;
	int i;
	bool check=true;
	for ( i = 0; i < 4; ++i)
	{
		if(y[i]<1  || ((view_status[x[i]][y[i]-1][z[i]]==1)&&((y[i]-1)!=y[0])&&((y[i]-1)!=y[2])&&((y[i]-1)!=y[3])&&((y[i]-1)!=y[1])))
		{
			check=false;
		}
	}
	if(check)   
	{
		update_created_status(0);
		for (i=0;i<4;i++)
		{
			view_status[x[i]][y[i]][z[i]]=0;
			current_block_array[i]=tetris_board->board[CELL(x[i], y[i],z[i])];
		}
		for (i=0;i<4;i++)
		{
			y[i]--;
			view_status[x[i]][y[i]][z[i]]=1;
			tetris_board_place_block_at_boardvalue(tetris_board,current_block_array[i], CELL(x[i], y[i],z[i]),z[i]);
		}
		printf("moving up\n");
		update_created_status(1);
	}
	executed=1;
}
Example #4
0
int main() {

    lxw_workbook  *workbook  = workbook_new("test_defined_name01.xlsx");
    lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet3 = workbook_add_worksheet(workbook, "Sheet 3");

    worksheet_set_paper(worksheet1, 9);
    worksheet1->vertical_dpi = 200;

    worksheet_print_area(worksheet1, RANGE("A1:E6"));
    worksheet_autofilter(worksheet1, RANGE("F1:G1"));
    worksheet_write_string(worksheet1, CELL("G1"), "Filter", NULL);
    worksheet_write_string(worksheet1, CELL("F1"), "Auto", NULL);
    worksheet_fit_to_pages(worksheet1, 2, 2);

    workbook_define_name(workbook, "'Sheet 3'!Bar", "='Sheet 3'!$A$1");
    workbook_define_name(workbook, "Abc",           "=Sheet1!$A$1");
    workbook_define_name(workbook, "Baz",           "=0.98");
    workbook_define_name(workbook, "Sheet1!Bar",    "=Sheet1!$A$1");
    workbook_define_name(workbook, "Sheet2!Bar",    "=Sheet2!$A$1");
    workbook_define_name(workbook, "Sheet2!aaa",    "=Sheet2!$A$1");
    workbook_define_name(workbook, "_Egg",          "=Sheet1!$A$1");
    workbook_define_name(workbook, "_Fog",          "=Sheet1!$A$1");

    (void)worksheet2;
    (void)worksheet3;

    return workbook_close(workbook);
}
int main() {

    lxw_workbook  *workbook   = new_workbook("test_chart_bar02.xlsx");
    lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, NULL);
    lxw_chart     *chart      = workbook_add_chart(workbook, LXW_CHART_BAR);

    /* For testing, copy the randomly generated axis ids in the target file. */
    chart->axis_id_1 = 93218304;
    chart->axis_id_2 = 93219840;

    uint8_t data[5][3] = {
        {1, 2,  3},
        {2, 4,  6},
        {3, 6,  9},
        {4, 8,  12},
        {5, 10, 15}
    };

    int row, col;
    for (row = 0; row < 5; row++)
        for (col = 0; col < 3; col++)
            worksheet_write_number(worksheet2, row, col, data[row][col] , NULL);

    worksheet_write_string(worksheet1, CELL("A1"), "Foo" , NULL);

    chart_add_series(chart, "Sheet2!$A$1:$A$5", "Sheet2!$B$1:$B$5");
    chart_add_series(chart, "Sheet2!$A$1:$A$5", "Sheet2!$C$1:$C$5");


    worksheet_insert_chart(worksheet2, CELL("E9"), chart);

    return workbook_close(workbook);
}
Example #6
0
int
hex_cell_z_connected_p (hex_t hex, uint i, uint j)
{
  if (IN_BOARD_P(hex, i, j) && CELL(hex,i,j).player != 0)
    return CELL(hex,i,j).z_connected;
  else
    return -1;
}
Example #7
0
// use group theory to fill in the rest of the square from the first row
void fill_in_square(latin_grid square) {
  int row, col;
  for (row = 1; row < square->size; row++) {
    for (col = 0; col < square->size; col++) {
      CELL(square, row, col) =
        cyclic_multiply(row, CELL(square, 0, col), square->size);
    }
  }
}
void choose_row(int row, latin_grid square2) {
  // put the rowth row of square2 into the next row in temp_square2
  int i;
  for (i = 0; i < square2->size; i++) {
    CELL(temp_square2, current_row, i) = CELL(square2, row, i);
  }
  current_row++;
  rows_used |= 1 << row;
}
Example #9
0
void *get_opponent_best_move(void *param) {
    printf(" ** Thinking...");

    Chessboard *cboard = (Chessboard *) param;
    void on_best_move_found (Move *m) {
        int i;
        for (i=0; i<64; i++) { cboard->cells_highlighted[i] = CELL_NONE; }
        cboard->cells_highlighted[CELL(m->to_file, m->to_rank)] = 1;
        cboard->cell_selected = CELL(m->from_file, m->from_rank);
    }
Example #10
0
void get_cell_widths(struct table *t)
{
	int nl = t->p->link_num;
	int i, j;
	if (!d_opt->table_order)
		for (j = 0; j < t->y; j++) for (i = 0; i < t->x; i++) g_c_w(CELL(t, i, j));
	else
		for (i = 0; i < t->x; i++) for (j = 0; j < t->y; j++) g_c_w(CELL(t, i, j));
	t->link_num = nl;
}
int main() {

    lxw_workbook  *workbook  = workbook_new("test_hyperlink07.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

    worksheet_write_url_opt(worksheet, CELL("A1"), "external:\\\\VBOXSVR\\share\\foo.xlsx", NULL, "J:\\foo.xlsx", NULL);
    worksheet_write_url(    worksheet, CELL("A3"), "external:foo.xlsx" , NULL);

    return workbook_close(workbook);
}
Example #12
0
int main() {

    lxw_workbook  *workbook  = new_workbook("test_chart_bar03.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    lxw_chart     *chart1    = workbook_add_chart(workbook, LXW_CHART_BAR);
    lxw_chart     *chart2    = workbook_add_chart(workbook, LXW_CHART_BAR);

    /* For testing, copy the randomly generated axis ids in the target file. */
    chart1->axis_id_1 = 64265216;
    chart1->axis_id_2 = 64447616;

    chart2->axis_id_1 = 86048128;
    chart2->axis_id_2 = 86058112;

    uint8_t data[5][3] = {
        {1, 2,  3},
        {2, 4,  6},
        {3, 6,  9},
        {4, 8,  12},
        {5, 10, 15}
    };

    int row, col;
    for (row = 0; row < 5; row++)
        for (col = 0; col < 3; col++)
            worksheet_write_number(worksheet, row, col, data[row][col] , NULL);

    chart_add_series(chart1,
         "=Sheet1!$A$1:$A$5",
         "=Sheet1!$B$1:$B$5"
    );

    chart_add_series(chart1,
         "=Sheet1!$A$1:$A$5",
         "=Sheet1!$C$1:$C$5"
    );

    worksheet_insert_chart(worksheet, CELL("E9"), chart1);

    chart_add_series(chart2,
         "=Sheet1!$A$1:$A$4",
         "=Sheet1!$B$1:$B$4"
    );

    chart_add_series(chart2,
         "=Sheet1!$A$1:$A$4",
         "=Sheet1!$C$1:$C$4"
    );

    worksheet_insert_chart(worksheet, CELL("F25"), chart2);


    return workbook_close(workbook);
}
Example #13
0
int main() {

    lxw_workbook  *workbook  = workbook_new("test_image07.xlsx");
    lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, NULL);

    worksheet_insert_image(worksheet1, CELL("E9"), "images/red.png");
    worksheet_insert_image(worksheet2, CELL("E9"), "images/yellow.png");

    return workbook_close(workbook);
}
Example #14
0
void fix_block_at_z()
{
	int i; 
	for ( i = 0; i < 4; ++i)
	{
		// current_z=board_status[x[i]][y[i]];
		current_block=tetris_board->board[CELL(x[i], y[i],z[i])];
		tetris_board_place_block_at_boardvalue(tetris_board,current_block, CELL(x[i], y[i],z[i]),z[i]);
		printf("Block placed at x=%f,y=%f and z=%f\n",current_block->pos[0],current_block->pos[2],current_block->pos[1] );
	}
}
Example #15
0
void initialize_board(int* board) {
  int x,y;
  for (y = 0; y < ROWS; ++y) {
    for (x = 0; x < COLUMNS; ++x) {
      if (rand() % 4 == 0) {
        board[CELL(x,y)] = 1;
      } else {
        board[CELL(x,y)] = 0;
      }
    }
  }
}
Example #16
0
int JDList::Duplicate() { 
  JDCell* c = (JDCell*)CELL(hnd)->clone();
  int nhnd = (int)c;
  while ((int)c->next != hnd) {
    c->next = (JDCell*)c->next->clone();
    c->next->prev = c;
    c = c->next;
  }
  c->next = CELL(nhnd);
  c->next->prev = c;
  return nhnd;
}
int main() {

    lxw_workbook  *workbook  = workbook_new("test_default_row01.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

    worksheet_set_default_row(worksheet, 24, LXW_FALSE);

    worksheet_write_string(worksheet, CELL("A1"), "Foo" , NULL);
    worksheet_write_string(worksheet, CELL("A10"), "Bar" , NULL);

    return workbook_close(workbook);
}
Example #18
0
void add_glider(int* board, int x, int y) {
  int x_minus = (x == 0) ? COLUMNS - 1 : x - 1;
  int y_minus = (y == 0) ? ROWS - 1 : y - 1;
  int x_plus = (x == COLUMNS - 1) ? 0 : x + 1;
  int y_plus = (y == ROWS - 1) ? 0 : y + 1;

  board[CELL(x, y_minus)] = 1;
  board[CELL(x, y_plus)] = 1;
  board[CELL(x_plus, y)] = 1;
  board[CELL(x_plus, y_plus)] = 1;
  board[CELL(x_minus, y_plus)] = 1;
}
Example #19
0
int main() {

    lxw_workbook  *workbook  = workbook_new("test_image26.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

    worksheet_insert_image(worksheet, CELL("B2"), "images/black_72.png");
    worksheet_insert_image(worksheet, CELL("B8"), "images/black_96.png");
    worksheet_insert_image(worksheet, CELL("B13"), "images/black_150.png");
    worksheet_insert_image(worksheet, CELL("B17"), "images/black_300.png");

    return workbook_close(workbook);
}
int main() {

    lxw_workbook  *workbook   = new_workbook("test_chart_order01.xlsx");
    lxw_worksheet *worksheet1 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet2 = workbook_add_worksheet(workbook, NULL);
    lxw_worksheet *worksheet3 = workbook_add_worksheet(workbook, NULL);
    lxw_chart     *chart1     = workbook_add_chart(workbook, LXW_CHART_COLUMN);
    lxw_chart     *chart2     = workbook_add_chart(workbook, LXW_CHART_BAR);
    lxw_chart     *chart3     = workbook_add_chart(workbook, LXW_CHART_LINE);
    lxw_chart     *chart4     = workbook_add_chart(workbook, LXW_CHART_PIE);

    /* For testing, copy the randomly generated axis ids in the target file. */
    chart1->axis_id_1 = 54976896;
    chart1->axis_id_2 = 54978432;

    chart2->axis_id_1 = 54310784;
    chart2->axis_id_2 = 54312320;

    chart3->axis_id_1 = 69816704;
    chart3->axis_id_2 = 69818240;

    chart4->axis_id_1 = 69816704;
    chart4->axis_id_2 = 69818240;

    uint8_t data[5][3] = {
        {1, 2,  3},
        {2, 4,  6},
        {3, 6,  9},
        {4, 8,  12},
        {5, 10, 15}
    };

    int row, col;
    for (row = 0; row < 5; row++)
        for (col = 0; col < 3; col++) {
            worksheet_write_number(worksheet1, row, col, data[row][col], NULL);
            worksheet_write_number(worksheet2, row, col, data[row][col], NULL);
            worksheet_write_number(worksheet3, row, col, data[row][col], NULL);
        }

    chart_add_series(chart1, NULL, "=Sheet1!$A$1:$A$5");
    chart_add_series(chart2, NULL, "=Sheet2!$A$1:$A$5");
    chart_add_series(chart3, NULL, "=Sheet3!$A$1:$A$5");
    chart_add_series(chart4, NULL, "=Sheet1!$B$1:$B$5");

    worksheet_insert_chart(worksheet1, CELL("E9"),  chart1);
    worksheet_insert_chart(worksheet2, CELL("E9"),  chart2);
    worksheet_insert_chart(worksheet3, CELL("E9"),  chart3);
    worksheet_insert_chart(worksheet1, CELL("E24"), chart4);

    return workbook_close(workbook);
}
Example #21
0
static boxf
emitEdge (FILE* fp, Agedge_t* e, route rte, maze* m, int ix, boxf bb)
{
    int i, x, y;
    boxf n = CELL(agtail(e))->bb;
    segment* seg = rte.segs;
    if (seg->isVert) {
	x = vtrack(seg, m);
	y = (n.UR.y + n.LL.y)/2;
    }
    else {
	y = htrack(seg, m);
	x = (n.UR.x + n.LL.x)/2;
    }
    bb.LL.x = MIN(bb.LL.x, SC*x);
    bb.LL.y = MIN(bb.LL.y, SC*y);
    bb.UR.x = MAX(bb.UR.x, SC*x);
    bb.UR.y = MAX(bb.UR.y, SC*y);
    fprintf (fp, "newpath %d %d moveto\n", SC*x, SC*y);

    for (i = 1;i<rte.n;i++) {
	seg = rte.segs+i;
	if (seg->isVert) {
	    x = vtrack(seg, m);
	}
	else {
	    y = htrack(seg, m);
	}
	bb.LL.x = MIN(bb.LL.x, SC*x);
	bb.LL.y = MIN(bb.LL.y, SC*y);
	bb.UR.x = MAX(bb.UR.x, SC*x);
	bb.UR.y = MAX(bb.UR.y, SC*y);
	fprintf (fp, "%d %d lineto\n", SC*x, SC*y);
    }

    n = CELL(aghead(e))->bb;
    if (seg->isVert) {
	x = vtrack(seg, m);
	y = (n.UR.y + n.LL.y)/2;
    }
    else {
	y = htrack(seg, m);
	x = (n.LL.x + n.UR.x)/2;
    }
    bb.LL.x = MIN(bb.LL.x, SC*x);
    bb.LL.y = MIN(bb.LL.y, SC*y);
    bb.UR.x = MAX(bb.UR.x, SC*x);
    bb.UR.y = MAX(bb.UR.y, SC*y);
    fprintf (fp, "%d %d lineto stroke\n", SC*x, SC*y);

    return bb;
}
Example #22
0
int main() {

    lxw_workbook_options options = {1, NULL};

    lxw_workbook  *workbook  = workbook_new_opt("test_optimize21.xlsx", &options);
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

    worksheet_write_string(worksheet, CELL("A1"), "Foo",     NULL);
    worksheet_write_string(worksheet, CELL("C3"), " Foo",    NULL);
    worksheet_write_string(worksheet, CELL("E5"), "Foo ",    NULL);
    worksheet_write_string(worksheet, CELL("A7"), "\tFoo\t", NULL);

    return workbook_close(workbook);
}
Example #23
0
int main() {

    lxw_workbook  *workbook  = new_workbook("test_hyperlink18.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);

    worksheet_write_url(worksheet, CELL("A1"), "http://google.com/00000000001111111111222222222233333333334444444444555555555566666666666777777777778888888888999999999990000000000111111111122222222223333333333444444444455555555556666666666677777777777888888888899999999999000000000011111111112222222222x", NULL);

    /* This longer url should be ignored. */
    worksheet_write_url(worksheet, CELL("A1"), "http://google.com/00000000001111111111222222222233333333334444444444555555555566666666666777777777778888888888999999999990000000000111111111122222222223333333333444444444455555555556666666666677777777777888888888899999999999000000000011111111112222222222xy", NULL);



    return workbook_close(workbook);
}
Example #24
0
// add the symbol to the grid and to the usage arrays
void grid_write(latin_grid square, coord position, int symbol) {
  
  // TODO: clean this up
  
  int old_symbol = CELL(square, position->row, position->col);
  
  if (square == square_A) {

    // old value is available
    set_used(&row_used_A, old_symbol, false);
    
    // new value is not
    set_used(&row_used_A, symbol, true);
    
    // diffs
    if (position->col > 0) {
      diff_used_A[row_difference(square, position, old_symbol)]--;
      diff_used_A[row_difference(square, position, symbol)]++;
    }
    
    // cyclic equivalences
    if (cyclic_equivalent_to_1(old_symbol, square->size)) {
      equivalent_to_1_used--;
    }
    if (cyclic_equivalent_to_1(symbol, square->size)) {
      equivalent_to_1_used++;
    }
  } else {
    // old value is available
    set_used(&row_used_B, old_symbol, false);
    
    // new value is not
    set_used(&row_used_B, symbol, true);
    
    // diffs
    set_used(&diff_used_orthogonal, orthogonal_difference(position, old_symbol), false);
    set_used(&diff_used_orthogonal, orthogonal_difference(position, symbol), true);
    if (position->col > 0) {
      diff_used_B[row_difference(square, position, old_symbol)]--;
      diff_used_B[row_difference(square, position, symbol)]++;
      diff_used_diagonal_AB[diagonal_AB_difference(position, old_symbol)]--;
      diff_used_diagonal_AB[diagonal_AB_difference(position, symbol)]++;
    }
    if (position->col < square->size - 1) {
      diff_used_diagonal_BA[diagonal_BA_difference(position, old_symbol)]--;
      diff_used_diagonal_BA[diagonal_BA_difference(position, symbol)]++;
    }
  }
  CELL(square, position->row, position->col) = symbol;
}
Example #25
0
/* Recompute all connection properties for a board. It is required
   when you remove some information from the board. For example, after
   a `undo'. */
static void
recompute_setting (hex_t hex)
{
  size_t size = hex->size;
  int i,j;
  /* Clean previous connection properties */
  for (j=0; j<size; j++)
    {
      for (i=0; i<size; i++)
        CELL(hex,i,j).a_connected =
          CELL(hex,i,j).z_connected = 0;
    }
  /* a-connection for player 1 */
  for (i=0; i<size; i++)
    {
      if (CELL(hex,i,0).player == 1)
        {
          CELL(hex,i,0).a_connected = 1;
          expand_a_connection (hex, i, 0);
        }
    }
  /* z-connection for player 1 */
  for (i=0; i<size; i++)
    {
      if (CELL(hex,i,size-1).player == 1)
        {
          CELL(hex,i,size-1).z_connected = 1;
          expand_z_connection (hex, i, size-1);
        }
    }
  /* a-connection for player 2 */
  for (j=0; j<size; j++)
    {
      if (CELL(hex,0,j).player == 2)
        {
          CELL(hex,0,j).a_connected = 1;
          expand_a_connection (hex, 0, j);
        }
    }
  /* z-connection for player 2 */
  for (j=0; j<size; j++)
    {
      if (CELL(hex,size-1,j).player == 2)
        {
          CELL(hex,size-1,j).z_connected = 1;
          expand_z_connection (hex, size-1, j);
        }
    }
}
int main() {

    lxw_workbook  *workbook  = new_workbook("test_chart_axis29.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    lxw_chart     *chart     = workbook_add_chart(workbook, LXW_CHART_LINE);

    /* For testing, copy the randomly generated axis ids in the target file. */
    chart->axis_id_1 = 45444480;
    chart->axis_id_2 = 47402368;

    uint8_t data[5][3] = {
        {1, 2,  3},
        {2, 4,  6},
        {3, 6,  9},
        {4, 8,  12},
        {5, 10, 15}
    };

    int row, col;
    for (row = 0; row < 5; row++)
        for (col = 0; col < 3; col++)
            worksheet_write_number(worksheet, row, col, data[row][col], NULL);

    chart_add_series(chart, NULL, "=Sheet1!$A$1:$A$5");
    chart_add_series(chart, NULL, "=Sheet1!$B$1:$B$5");
    chart_add_series(chart, NULL, "=Sheet1!$C$1:$C$5");

    lxw_chart_font font1 = {.rotation = -90, .baseline = -1};
    chart_axis_set_num_font(chart->x_axis, &font1);

    worksheet_insert_chart(worksheet, CELL("E9"), chart);

    return workbook_close(workbook);
}
int main() {

    lxw_workbook  *workbook  = workbook_new("test_default_row02.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    uint8_t row;

    worksheet_set_default_row(worksheet, 15, LXW_TRUE);

    worksheet_write_string(worksheet, CELL("A1"), "Foo" , NULL);
    worksheet_write_string(worksheet, CELL("A10"), "Bar" , NULL);

    for (row = 1; row <= 8; row++)
        worksheet_set_row(worksheet, row, 15, NULL);

    return workbook_close(workbook);
}
int main() {

    lxw_workbook  *workbook  = new_workbook("test_chart_doughnut02.xlsx");
    lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
    lxw_chart     *chart     = workbook_add_chart(workbook, LXW_CHART_DOUGHNUT);

    uint8_t data[3][2] = {
        {2,  60},
        {4,  30},
        {6,  10},
    };

    int row, col;
    for (row = 0; row < 3; row++)
        for (col = 0; col < 2; col++)
            worksheet_write_number(worksheet, row, col, data[row][col], NULL);

    chart_add_series(chart,
         "=Sheet1!$A$1:$A$3",
         "=Sheet1!$B$1:$B$3"
    );

    chart_set_hole_size(chart, 10);

    worksheet_insert_chart(worksheet, CELL("E9"), chart);

    return workbook_close(workbook);
}
Example #29
0
void create_new_shape(int type,int color_block)
{
	int i,current_z;
	printf("Creating block\n");
	mode=0;
	if(type==1)
	{
		int temp_x=rand()%7;
		int temp_y=rand()%7;
		x[0]=x[2]=temp_x;
		x[1]=x[3]=temp_x+1;
		y[0]=y[1]=temp_y;
		y[2]=y[3]=temp_y+1;
		z[0]=z[1]=z[2]=z[3]=8;
		// x[4]={temp_x,temp_x+1,temp_x,temp_x+1};
		// y[4]={temp_y,temp_y,temp_y+1,temp_y+1};
		// z[4]={8,8,8,8};
	}
	else if(type==2)
	{
		int temp_x=rand()%6;
		int temp_y=rand()%7;
		x[0]=temp_x;
		x[1]=temp_x + 1;
		x[2]=x[3]=temp_x+2;
		y[3]=temp_y;
		y[0]=y[1]=y[2]=temp_y+1;
		z[0]=z[1]=z[2]=z[3]=8;
	}
	else if(type==3)
	{
		int temp_x=rand()%6;
		int temp_y=rand()%7;
		x[0]=temp_x;
		x[1]=x[3]=temp_x + 1;
		x[2]=temp_x+2;
		y[3]=temp_y;
		y[0]=y[1]=y[2]=temp_y+1;
		z[0]=z[1]=z[2]=z[3]=8;
	}
	else if(type==4)
	{
		int temp_x=rand()%5;
		int temp_y=rand()%8;
		x[0]=temp_x;
		x[1]=temp_x + 1;
		x[2]=temp_x + 2;
		x[3]=temp_x + 3;
		y[0]=y[1]=y[2]=y[3]=temp_y;
		z[0]=z[1]=z[2]=z[3]=8;		
	}
	for ( i = 0; i < 4; ++i)
	{
		current_block=create_block(squareshape, color_block);
		// current_blockx=set_block(global_type_block, color_block,current_block);
		tetris_board_place_block(tetris_board,current_block, CELL(x[i], y[i],z[i]),z[i]);
		// view_status[x[i]][y[i]][z[i]]=1;
	}

}
Example #30
0
inline void cell_live_or_die(gol* gol_i, int i, int j)
{
	unsigned char *cell = CELL(gol_i, i, j);
	unsigned char n;
	unsigned char num_neighboors = 0;
	for(n = 0; n < 8; n++)
	{
		int i_pos = i+neighboor_offsets[n][0];
		int j_pos = j+neighboor_offsets[n][1];
		unsigned char *n_cell = CELL_SAFE(gol_i, i_pos, j_pos);
		num_neighboors += CELL_ALIVE(n_cell, gol_i);
	}

	if(CELL_ALIVE(cell, gol_i))
		if(num_neighboors < 2)
			CELL_SET_ALIVE(cell, DEAD, gol_i);
		else if(num_neighboors <= 3)
			CELL_SET_ALIVE(cell, ALIVE, gol_i);
		else
			CELL_SET_ALIVE(cell, DEAD, gol_i);
	else
		if(num_neighboors == 3)
			CELL_SET_ALIVE(cell, ALIVE, gol_i);	
		else
			CELL_SET_ALIVE(cell, DEAD, gol_i);
	CELL_SET(cell, num_neighboors);
}