function openAround(rI, cI) {
setTimeout(() => {
const count = open(rI, cI);
if (count === 0) {
openAround(rI - 1, cI - 1);
openAround(rI - 1, cI);
openAround(rI - 1, cI + 1);
openAround(rI, cI - 1);
openAround(rI, cI + 1);
openAround(rI + 1, cI - 1);
openAround(rI + 1, cI);
openAround(rI + 1, cI + 1);
}
}, 0);
}
이제 칸들이 순차적으로 열리기 시작합니다. 그런데 열어야 할 칸이 많으면 칸이 열릴 때 느려지는 모습을 볼 수 있습니다. 심한 경우에는 웹 브라우저가 멈춰 버릴 수도 있습니다. 재귀 함수를 잘못 사용했을 때 연산량이 매우 많아져서 그렇습니다. 지금은 한 칸을 열 때마다 주변 8칸을 검사한 뒤 열고, 주변 8칸이 다시 주변 8칸을 검사한 뒤 열고 있습니다.