Probablemente sea solo un pequeño error, pero no puedo resolverlo. Estoy creando un programa para verificar si un sudoku tiene varias soluciones, pero la variable i en mi bucle for no se transfiere a la función de resolución.
Cuando llamo a la función de resolución con un número codificado, funciona como se esperaba. Pero si no, usa el valor en el que está inicializado y no cambia.
function unique(bo) { let boards = [] let i = 0 for (i = 0; i <= bo.length; i++) { let num = i console.log(num) //returns i correctly let board = [] board = solve(bo, num) //num is not updated if (board) { boards.push(board) } } if (new Set(boards).size === 1) { return true } else { return false } } function solve(bo, st) { let numberList = [1, 2, 3, 4, 5, 6, 7, 8, 9] numberList = Rotate(numberList, parseInt(st)) let found = findEmpty(bo) if (!validateBoard(bo)) { return false } let row, col; //any more left? if (!found) { return bo } [row, col] = found //return bo for (let i = 0; i < numberList.length; i++) { if (validate(bo, numberList[i], [row, col])) { bo[row][col] = numberList[i]; solve(bo, st) } } if (findEmpty(bo)) { bo[row][col] = 0; } return bo }