Я новичок в использовании Javascript и пытаюсь кодировать в нем алгоритм типа залива (впервые используя библиотеку p5js).Это мой первый раз с рекурсией в Javascript.
В прошлом я реализовал заливку в python, и это работало нормально.Я подумал, что мог бы использовать тот же код, но изменить синтаксис, но он не работает для меня.
Он начинает заполняться вокруг препятствий, но затем останавливается посередине, и я не могу понять, почему
function generatePaths(board, row, col, depth=0){
//print(board[row][col][1]);
if ((row<0) || (row>100) || (col<0) || (col>100)){
return;
}
if (board[row][col][0]!=0){
return;
}
if (board[row][col][1]>0) {
return;
}
if (board[row][col][0] == 0){
board[row][col][0] = 2;
board[row][col][1] = depth;
}
generatePaths(board, row+1,col, depth+1);
generatePaths(board, row-1,col, depth+1);
generatePaths(board, row,col-1, depth+1);
generatePaths(board, row,col-1, depth+1);
}
Я думаю, что переменные row и col, вероятно, говорят сами за себя.Третий индекс представляет значение и глубину рекурсии.Изначально у меня не было значения глубины, но я волновался, что это может быть проблемой, поэтому я добавил его (ничего не изменилось)
Я хочу заменить всю пустую доску [row] [col][0] значения с 2 с.Они пусты, если в данный момент там 0.Я получаю сообщение об ошибке при первом рекурсивном вызове
Возможно, я совершаю глупую ошибку, но не могу найти ее, если это так!Я не понимаю, что происходит с этой ошибкой, помощь приветствуется !!
Вот изображение того, что он делает.Я не знаю, почему это просто останавливается.
введите описание изображения здесь