void ResetSpawnFlag() {
	static int spawnReadyTimer = 0;

	if (collisionFlag == true) {
		spawnReadyTimer++;
	}

	if (spawnReadyTimer >= 3) {
		spawnReadyTimer = 0;
		canSpawn = true;
		collisionFlag = false;
	}
}

초기 잘못된 구현

// 추후 사용 블록 제거될 시 위의 블록들을 끌어내린다. 모양 그대로
void ApplyLineGravity(int startLine) {
	int width = grid[0].size();
	int height = grid.size();

	// vector<vector<int>> newgrid(height, vector<int>(width, 0));
	// std::swap(grid, newgrid);

	if (startLine < 0 || startLine >= height) {
		cerr << "startLine이 유효범위를 벗어났음.\\n";
		exit(EXIT_FAILURE);
	}
	

	for (int i = startLine; i >= 1; i--) {
		for (int j = 0; j < width; j++) {
			grid[i][j] = grid[i-1][j];
		}
	}

	for (int j = 0; j < width; j++) {
		grid[0][j] = 0;
	}
}
for (auto& clearedLine : clearedLines) { 
		ApplyLineGravity(clearedLine); 
}