주변 칸 한 번에 열기(재귀)
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
Was this helpful?