function findEmptySquare (tdIndex, x, y) {
$td[tdIndex].classList.add('clicked');
if (INIT.board[x][y] !== 0) {
$td[tdIndex].classList.add(`txt-${INIT.board[x][y]}`);
$td[tdIndex].textContent = INIT.board[x][y];
}
INIT.squareLen--;
INIT.board[x][y] = 'o';
let iLen = x + 2;
let jLen = y + 2;
let noMine = true;
for (let i = x - 1; i < iLen; i++) {
for (let j = y - 1; j < jLen; j++) {
if (i < 0 || j < 0 || i === INIT.board.length || j === INIT.board[i].length || (i === x && j === y) || INIT.board[i][j] === 'o') {
continue;
}
if (INIT.board[i][j] === 'm') {
noMine = false;
}
}
}
if (noMine) {
for (let i = x - 1; i < iLen; i++) {
for (let j = y - 1; j < jLen; j++) {
if (i < 0 || j < 0 || i === INIT.board.length || j === INIT.board[i].length || (i === x && j === y) || INIT.board[i][j] === 'o') {
continue;
}
findEmptySquare(i * INIT.defCol + j, i, j);
}
}
}
Flood Fill 알고리즘 써야되는데 생각하기 귀찮아서 재귀함수 구현해내는거 자바소스 구해서 이걸 C로 바꿔볼려고 함.
그냥 체크하고 빈칸이면 상하좌우 호출하면 되자너ㅋㅋ - dc Cpp
빈 칸을 클릭했을 때 주변 모든 빈 칸을 "연쇄적"으로 오픈하는 거라서...
당연히 주변칸에서 재귀적으로 다른칸 호출하지. 참고로 올린거 그대로 베끼면 안됨. 8방향이 아니라 4방향으로 체크해야되니까 - dc Cpp
ㅇㅋ