bool canRotate() {
for (int i = 0; i < USERBLOCK_SIZE; i++) {
for (int k = 0; k < USERBLOCK_SIZE; k++) {
if (userBlock[i][k] == 1) {
int __x = blockX + USERBLOCK_SIZE - 1 - i; // 회전 시 x 좌표
int __y = blockY + k; // 회전 시 y 좌표
// 가로 범위 체크
if (__x > GRID_WIDTH - 1 || __x < 0) {
return false;
}
// 세로 범위 체크
if (__y > GRID_HEIGHT - 1 || __y < 0) {
return false;
}
// 다른 블록 체크
if (gameGridData[__y][__x] == 1) {
return false;
}
}
}
}
return true;
}
void rotate() {
int temp[USERBLOCK_SIZE][USERBLOCK_SIZE] = { 0, };
for (int i = 0; i < USERBLOCK_SIZE; i++) {
for (int k = 0; k < USERBLOCK_SIZE; k++) {
temp[i][k] = userBlock[i][k];
}
}
for (int i = 0; i < USERBLOCK_SIZE; i++) {
for (int k = 0; k < USERBLOCK_SIZE; k++) {
userBlock[k][USERBLOCK_SIZE - 1 - i] = temp[i][k];
}
}
}