Page. 2313 / 5883
[내 메뉴에 추가]
| 작성자 |
|
||
|---|---|---|---|
| 작성일 | 2013-12-16 14:38:55 KST | 조회 | 885 |
| 제목 |
뿌요뿌요 알고리즘을 짜고 있는데 잘 안되네요
|
||
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;
}
}
이런식으로 해본 결과 다른 건 다 잘되는데
옆으로 뒤집은 ㄱ 모양으로 뭉쳐있는 경우는 안없어지는군요
문제가 있는건 알겠는데 못 고치고 있으면 왠지 초조해짐
|
||
|
|
||
|
댓글을 등록하려면 로그인 하셔야 합니다.
로그인 하시려면 [여기]를 클릭하십시오.






디아3






