Cuando trato de crear una matriz con números aleatorios, todas las filas de la matriz aparecen iguales. ¿Cómo puedo solucionar esto? El código del problema es:
var sudokuRowMatrix = []; var numbers = []; var randomizedArray = []; var sudokuColumnArray = []; for(i=0;i<=8;i++){ numbers[i]=i+1; sudokuRowMatrix[i] = []; sudokuColumnArray[i] = []; } function RandomizeArray(array){ for(arrayIndex=0;arrayIndex<=8;arrayIndex++){ randomArrayIndex = Math.floor(Math.random()*9); randomArrayIndex2 = Math.floor(Math.random()*9); placeHolder = array[randomArrayIndex]; array[randomArrayIndex]=array[randomArrayIndex2]; array[randomArrayIndex2] = placeHolder; } return array; } for(rowNumber=0;rowNumber<=8;rowNumber++){ sudokuRowMatrix[rowNumber] = RandomizeArray(numbers); }Cuando llamas a RandomizeArray(numbers) , pasas la matriz de números como referencia. Esto significa que siempre baraja la misma matriz y la configura como una fila en su matriz de Sudoku y, por lo tanto, baraja todas sus filas, ya que todas tienen la misma referencia.
Una manera fácil de solucionar esto es desestructurar su matriz antes de pasarla a su método: sudokuRowMatrix[rowNumber] = RandomzieArray([...numbers]);