/* Form the blocks */ void block_form(block *p, int x, int y) { p->x[1]=x; p->y[1]=y; switch(p->t) { case square: p->x[0]=x-1; p->x[2]=x-1; p->x[3]=x; p->x[0]=y; p->y[2]=y+1; p->y[3]=y+1; break; case horizontal_long: p->x[0]=x-1; p->x[2]=x+1; p->x[3]=x+2; p->y[0]=y; p->y[2]=y; p->y[3]=y; break; case vertical_long: p->x[0]=x; p->x[2]=x; p->x[3]=x; p->y[0]=y-1; p->y[2]=y+1; p->y[3]=y+2; break; case stair1: p->x[0]=x-1; p->x[2]=x+1; p->x[3]=x; p->y[0]=y+1; p->y[2]=y; p->y[3]=y+1; break; case stair2: p->x[0]=x-1; p->x[2]=x-1; p->x[3]=x; p->y[0]=y-1; p->y[2]=y; p->y[3]=y+1; break; case stair3: p->x[0]=x-1; p->x[2]=x; p->x[3]=x+1; p->y[0]=y-1; p->y[2]=y-1; p->y[3]=y; break; case stair4: p->x[0]=x+1; p->x[2]=x+1; p->x[3]=x; p->y[0]=y-1; p->y[2]=y; p->[3]=y+1; break; case T_up: p->x[0]=x; p->x[2]=x-1 p->x[3]=x+1; p->y[0]=y-1; p->y[2]=y; p->y[3]=y; break; case T_right: p->x[0]=x; p->x[2]=x+1; p->x[3]=x; p->y[0]=y-1; p->y[2]=y; p->y[3]=y+1; break; case T_down: p->x[0]=x-1; p->x[2]=x+1; p->x[3]=x; p->y[0]=y; p->y[2]=y; p->y[3]=y+1; break; case T_left: p->x[0]=x; p->x[2]=x-1; p->x[3]=x; p->y[0]=y-1; p->y[2]=y; p->y[3]=y+1; break; case L1_up: p->x[0]=x; p->x[2]=x; p->x[3]=x+1; p->y[0]=y-1; p->y[2]=y+1; p->y[3]=y+1; break; case L1_right: p->x[0]=x-1; p->x[2]=x+1; p->x[3]=x-1; p->y[0]=y; p->y[2]=y; p->y[3]=y+1; break; case L1_down: p->x[0]=x-1; p->x[2]=x; p->x[3]=x; p->y[0]=y-1; p->y[2]=y-1; p->y[3]=y+1; break; case L1_left: p->x[0]=x+1; p->x[2]=x-1; p->x[3]=x+1; p->y[0]=y-1; p->y[2]=y; p->y[3]=y; break; case L2_up: p->x[0]=x; p->x[2]=x; p->x[3]=x-1; p->y[0]=y-1; p->y[2]=y+1; p->y[3]=y+1; break; case L2_right: p->x[0]=x-1; p->x[2]=x-1; p->x[3]=x+1; p->y[0]=y-1; p->y[2]=y; p->y[3]=y; break; case L2_down: p->x[0]=x; p->x[2]=x+1; p->x[3]=x; p->y[0]=y-1; p->y[2]=y-1; p->y[3]=y+1; break; case L2_left: p->x[0]=x-1; p->x[2]=x+1; p->x[3]=x+1; p->y[0]=y; p->y[2]=y; p->y[3]=y+1; break; } }