Language
한국어
프로그래밍 관련 질문 사항을 올려주세요. 도움을 받기 위해서는 최대한 질문을 상세하게 작성하고 도움을 준 분께는 감사의 표시를 합시다.
  • 테트리스의 GetAround와 PrintBrick에 대해 설명해주세요!
  • 조회 수: 375, 2016-11-15 01:18:25(2016-11-15)
  • 이 홈페이지의 c/c++강좌에서 2부 c고급에서 테트리스 강좌에 대한 질문입니다.

    첫번째 질문:GetAround를 main함수에서 쓰는 코드가 있는데

    if (GetAround(nx,ny,brick,rot) != EMPTY) break;

    이 코드가 게임보드 안에 블럭이 끝까지 다 찼을때 게임에서 나가는 코드인건 알겠는데 왜 nx와ny를 그대로 이용을 하나요?

    제 생각에는 이렇게 하면 nx와 ny에 변함이 없어서 항상 새끼 블럭 좌표의 BRICK값만 나올 것 같은데...


    그리고 주변을 검사해서 주변 값을 리턴하는 건 알겠는데 어떻게 주변을 검사하는지도 알려주시면 감사하겠습니다.


    두번째 질문: PrintBrick에서 BX좌표에다가 nx(게임판에서의 좌표)를 더한 좌표가 블럭이 생성되는 위치잖아요. y좌표도 마찬가지고요. 근데 x좌표에서 왜 nx에다가 왜 2를 곱하는지 알고싶어요.



    void PrintBrick(BOOL Show)

    {

         int i;

     

         for (i=0;i<4;i++) {

              gotoxy(BX+(Shape[brick][rot][i].x+nx)*2,BY+Shape[brick][rot][i].y+ny);

              puts(arTile[Show ? BRICK:EMPTY]);

         }

    }

    int GetAround(int x,int y,int b,int r)

    {

         int i,k=EMPTY;

     

         for (i=0;i<4;i++) {

              k=max(k,board[x+Shape[b][r][i].x][y+Shape[b][r][i].y]);

         }

         return k;

    }


댓글 0

현재 게시판 기능 테스트중입니다. 디자인이나 게시판 구성은 언제든지 예고없이 변경될 수 있습니다.