<aside> 💡

먼저 테스트를 위해 특정 종류하나의 블록에 대해서만 구현을 하기로 하였다.

</aside>

‘ㄱ’ 자형 Block1 만들기

// ㄱ 자형 블록
namespace Block1 {
	int dy[3] = { 0, 0, 1 };
	int dx[3] = { 0, 1, 1 };
};

// ㄱ 자형 블록
void PutBlock1(int startX) {
	// ㄱ 자의 좌측부터 둔다.
	// 유효성 검사도 필요. 실제 삼성코테에서 이런 유효성검사를 꼼꼼히 안하면 엣지케이스에 걸려버림

	int endX = startX + 1;

	// 유효성검사
	if (startX < 0 || endX >= Grid[0].size()) {
		return;
	}

	for (int i = 0; i < 3; i++) {

		int startY = 0;

		int dy = Block1::dy[i];
		int dx = Block1::dx[i];

		int cx = startX + dx;
		int cy = startY + dy;

		Grid[cy][cx] = 1;
	}

}

(테스트) 0번 위치에 놓았을 때

image.png

(테스트) 시작 X 위치를 -1번이나 10번과 같이 유효하지 않은 범위에 넣었을 때

image.png

(테스트) 시작 위치 X를 8번에 놓았을 때

image.png