public void blockCheckPuyo(int blockSet[][], int delNum, int x, int y,
int count) {
// if (blockCheckDone[x][y] == 999) {
// return;
// } else
{
//
if (count >= delNum) {
blockMatched[x][y] = 1;
}
//
if ((x - 1) < 0 || blockCheckDone[x - 1][y] > 0) {
;
} else if (blockSet[x - 1][y] == blockSet[x][y]
&& blockCheckDone[x - 1][y] == 0) {
blockCheckDone[x][y] = 1;
blockCheckPuyo(blockSet, delNum, x - 1, y, count + 1);
if (blockMatched[x - 1][y] == 1) {
blockMatched[x][y] = 1;
}
}
//
if ((x + 1) >= blockNum || blockCheckDone[x + 1][y] > 0) {
;
} else if (blockSet[x + 1][y] == blockSet[x][y]
&& blockCheckDone[x + 1][y] == 0) {
blockCheckDone[x][y] = 1;
blockCheckPuyo(blockSet, delNum, x + 1, y, count + 1);
if (blockMatched[x + 1][y] == 1) {
blockMatched[x][y] = 1;
}
}
//
if ((y - 1) < 0 || blockCheckDone[x][y - 1] > 0) {
;
} else if (blockSet[x][y - 1] == blockSet[x][y]
&& blockCheckDone[x][y - 1] == 0) {
blockCheckDone[x][y] = 1;
blockCheckPuyo(blockSet, delNum, x, y - 1, count + 1);
if (blockMatched[x][y - 1] == 1) {
blockMatched[x][y] = 1;
}
}
//
if ((y + 1) >= blockNum || blockCheckDone[x][y + 1] > 0) {
;
} else if (blockSet[x][y + 1] == blockSet[x][y]
&& blockCheckDone[x][y + 1] == 0) {
blockCheckDone[x][y] = 1;
blockCheckPuyo(blockSet, delNum, x, y + 1, count + 1);
if (blockMatched[x][y + 1] == 1) {
blockMatched[x][y] = 1;
}
}
//
//
//
blockCheckDone[x][y] = 999;
}
}
이런식으로 해본 결과 다른 건 다 잘되는데
옆으로 뒤집은 ㄱ 모양으로 뭉쳐있는 경우는 안없어지는군요
문제가 있는건 알겠는데 못 고치고 있으면 왠지 초조해짐