int blocks[7] =

{

    011100040, 010010402, 011110000, 011102000, 011010040, 011014000, 011100020,

};


int block_masks[] =

{

    000000001, 000000002, 000000004, 000000010,

    000004000, 000010000, 000100000, 000000020,

    000002000, 010000000, 001000000, 000000040,

    000001000, 000000400, 000000200, 000000100,

};


void rotate_cw(int& block)

{

    block = ((block << 3) & 011107770) | ((block >> 9) & 000010007);

}


void rotate_ccw(int& block)

{

    block = ((block >> 3) & 001110777) | ((block << 9) & 010007000);

}


void draw_block(int block)

{

    for(int y = 0; y < 4; ++y)

        for(int x = 0; x < 4; ++x)

            if(block_masks[x + y * 4] & block)

                put_tile(x, y, clWhite);

}


 이거보다 간단한 코드 본 사람? 블럭 하나에 24비트 쓴다. 8진수들 잼. 역시 난 좀 기발한듯.