테트리스 구현중 질문입니다

dolsae의 이미지

게시판에서 테트리스 관련 소스를 보고...

c언어 공부중에 공금한것이 있어서 질문드립니다.

(게시판에서 본 소스는.. http://kldp.org/node/117649)

밑에 소스를 보면...구조체에서 선언한 x,y값에는 어떤값이 어떻게 들어가는건지...??

그리고 p[1+block[shape][0][z].y][12+block[shape][0][z].x]=2;

이부분도 잘이해가..안되는게...우선순위가 어떻게 되는건지..??

struct XY 
{ 
     int x,y; 
}; 
XY block[8][4][4] //[벽돌번호][회전번호][일련번호] 
        ={ 
   { {0,0,2,0,4,0,-2,0}, {0,0,0,1,0,-1,0,-2}, {0,0,2,0,4,0,-2,0}, {0,0,0,1,0,-1,0,-2} }, //━ 
             ...
             ...
void Block() //블럭함수 
{ 
        int z; 
        for(z=0 ; z<4 ; z++) 
        { 
                p[1+block[shape][0][z].y][12+block[shape][0][z].x]=2; 
        } 
}