playXP

서브 메뉴

Page. 1 / 5878 [내 메뉴에 추가]
글쓰기
작성자 아이콘 PZT
작성일 2013-12-16 14:38:55 KST 조회 763
제목
뿌요뿌요 알고리즘을 짜고 있는데 잘 안되네요
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;
}
}

이런식으로 해본 결과 다른 건 다 잘되는데
옆으로 뒤집은 ㄱ 모양으로 뭉쳐있는 경우는 안없어지는군요
문제가 있는건 알겠는데 못 고치고 있으면 왠지 초조해짐

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
변이히드라 (2013-12-16 14:59:29 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
C++네요... 아직 완벽힌 모르지만, 혹시 모양에 상관없이 모인 갯수를 따라서 지우는 매커니즘을 만드는게 어떨까요..?
변이히드라 (2013-12-16 15:15:36 KST)
0↑ ↓0
센스 이미지를 등록해 주세요
예를들면 한 줄에 같은 블록이 delNum개 이상으로 나란히 놓이면 그 줄의 그 블록을 지우는 식으로..
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.