Hello! I wrote a script that, in theory, should generate a 3x3 matrix in a spiral, starting from the left side. All anything, but at me the error jumps out that the variable number is not defined or is equal to zero. Please look at my code. Maybe I was wrong somewhere. I myself do not know what the matter is. I would be very grateful if you find any other shoals.
Rewrote the code, as advised. A 3x3 matrix is formed, but is filled in incorrectly (
var numbers = [1,2,3,4,5,6,7,8,9]; var dimension = 3; var matrix = []; for(var d = 0; d<dimension; d++){ matrix[d] = []; } makeMatrix(numbers, dimension, matrix); function makeMatrix(numbers, dimension, matrix){ for(var n = 0; n < numbers.length; n++){ var i = 0; var j = 0; var number = numbers[n]; moveDown(i, j, matrix, number); } console.log(matrix); } function moveDown(i, j, matrix, number){ for(j; j<dimension; j++){ matrix[i][j]=number; if(matrix[i][j+1]!="" && matrix[i+1][j]==""){ i = i+1; moveRight(i, j, matrix, number); } } } function moveRight(i, j, matrix, number){ for(i; i<dimension; i++){ matrix[i][j]=number; if(matrix[i+1][j]!="" && matrix[i][j-1]==""){ j = j-1; moveUp(i, j, matrix, number); } } } function moveUp(i, j, matrix, number){ for(j; j>=0; j++){ matrix[i][j]=number; if(matrix[i][j-1]!="" && matrix[i-1][j]==""){ i = i-1; moveLeft(i, j, matrix, number); } } } function moveLeft(i, j, matrix, number){ for(i; i>=0; i++){ matrix[i][j]=number; if(matrix[i-1][j]!="" && matrix[i][j+1]==""){ dimension = dimension/2; makeMatrix(numbers, dimension); } } } 