주변 칸 한 번에 열기(재귀)

Recursive call

재귀함수는 반복문을 함수로 구현한 것이다.

배열.filter((v) => !!v); 는 배열에서 null/0/undefined를 찾아서 제거하는 메소드이다.

//주변지뢰개수를 찾는 것처럼, 주변칸을 배열로 모으는 코드이다.
if(주변지뢰개수 === 0) {
    var 주변칸 = [];
    if(tbody.children[줄-1]) {
        주변칸 = 주변칸.concat ([
            tbody.children[줄-1].children[칸-1],
            tbody.children[줄-1].children[칸],
            tbody.children[줄-1].children[칸+1],
        ]);
    }
    주변칸 = 주변칸.concat([
        tbody.children[줄].children[칸-1],
        tbody.children[줄].children[칸+1],
    ]);
    if(tbody.children[줄+1]) {
        주변칸 = . 주변칸.concat([
            tbody.children[줄+1].children[칸-1],
            tbody.children[줄+1].children[칸],
            tbody.children[줄+1].children[칸+1],
        ]);
    }
    //배열에서 undefined를 찾아서 제거하는 메소드.
    주변칸.filter((v) => !!v).forEach(function(옆칸) {
        옆칸.click();
    });

재귀 코드 효율 개선하기

방문했던 칸은 1로 표시하여 재방문하지 않도록 하여 코드 효율을 높일 수 있다.

Last updated