VC6.0 테트리스 만들기 – OneBlock 구조

 

OneBlock

 

OneBlock 는 앞 장에서 벽돌의 한 칸을 나타낸다고 했습니다. OneBlock 에 필요한 속성과 메소스를 구현해 보겠습니다.

 

속 성

설 명

X

벽돌 내부에서의 벽돌 한 칸의 X 좌표

Y

벽돌 내부에서의 벽돌 한 칸의 Y 좌표

Value

벽돌 한 칸의 값(벽돌의 유무와 나중에 아이템 등의 값으로 사용

 

 

 

 

‘X’, ‘Y’ 속성

X 는 벽돌 한 칸의 X 좌표를 Y는 벽돌 한 칸의 Y 좌표를 나타냅니다. 벽돌 한 개는 4×4 배열로 되어 있는데 그 벽돌 내에서의 좌표를 나타냅니다.

 

예를 들어 2×2 배열의 정사각형이라면 즉 Shape1 이라면 아래와 같이 구성되고 4개의 OneBlock은 아래와 같을 것입니다.

모양

OneBlock 선언

OneBlock block1 = OneBlock(0,0);

OneBlock block2 = OneBlock(1,0);

OneBlock block3 = OneBlock(0,1);

OneBlock block4 = OneBlock(1,1);

 

 

또는 ‘ㄱㄴ’ 의 모양이라면 즉 Shape2 이라면 아래와 같이 구성되고 4개의 OneBlock은 아래와 같을 것입니다.

모양

OneBlock 선언

OneBlock block1 = OneBlock(0,1);

OneBlock block2 = OneBlock(1,1);

OneBlock block3 = OneBlock(2,1);

OneBlock block4 = OneBlock(3,1);

 

 

‘Value’ 속성

Value 는 벽돌 한 칸의 값을 나타냅니다. 벽돌이 없으면 0, 있으면 1 입니다. 나중에 아이템을 추가하여 2, 3 등의 int 값을 정해서 사용하면 될 것입니다.

 

 

OneBlock 구현

OneBlock.h

 

class COneBlock

{

public:

    int m_iValue;

    int iPosX;        // 4×4 배열중의 X 좌표

    int iPosY;        // 4×4 배열중의 Y 좌표

    COneBlock();

    COneBlock(int y,int x);

    virtual ~COneBlock();

 

};

 

OneBlock.cpp

 

COneBlock::COneBlock(int y,int x)

{

    this->iPosX = x;

    this->iPosY = y;

}

 

COneBlock::COneBlock()

{

 

}

 

COneBlock::~COneBlock()

{

 

}


Leave a Comment