2D array assignment Javascript

let grid = [
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0, 0, 0, 0, 0],
]


function solveSudoku(){
    console.log("started")
    solveSudokuHelper(0,0)
    console.log(grid)
}

function solveSudokuHelper(x,y){
    // this happens when the grid is solved
    if (y>8){
        console.log("init finishing process")
        displaySodoku(grid)
    }

    // this happens when the grid is at the final row, and needs to go down a row
    if (x>8){
        solveSudokuHelper(0,y+1,grid)  
        return
    }
    if (grid[y][x] == 0){
        for (i = 1; i < 10; i++){
            if (isValid(x, y, i, grid)){
                console.log(grid, 1, i, y, x)
                grid[y][x] = i
                console.log(grid,2)
                solveSudokuHelper(x+1, y, grid)
                grid[y][x] = 0
            }
        }
    }
    else{
        solveSudokuHelper(x+1, y, grid)
    }
    return
}

function isValid(x, y, num, grid){

    // row checking
    for (col = 0; col < 9; col++){
        if (num == grid[y][col]){
            return(false)
        }
    }
    
    // column checking
    for (row = 0; row < 9; row++){
        if (num == grid[row][x]){
            return(false)
        }
    }

    // square checking
    startRow = y - (y % 3)
    startCol = x - (x % 3)

    row = startRow
    while (row <= startRow + 2){
        col = startCol
        while (col <= startCol + 2){
            if (grid[row][col] == num){
                return(false)
            }
            col += 1
        }
        row += 1
    }
    return(true)
}

solveSudoku();

I am trying to make something to solve a soduku, but the array assignment of values is not working. I have surrounded it with console.log statements, and I can’t seem to get anywhere. This occurs at line 48.

Something to note is that I already devised this algorithm in python, so unless the console.log statements are lying to me I have narrowed it down to this.

Python code: https://github.com/owenmoogk/sudoku-bot/blob/main/main.py

My output is just the original array repeated a bunch of times. Thanks in advance.

19 thoughts on “2D array assignment Javascript”

  1. 664737 83685bless you with regard to the certain weblog post ive really been looking with regard to this kind of advice on the net for sum time these days hence with thanks 625761

    Reply
  2. 777095 202428Typically I dont read write-up on blogs, but I would like to say that this write-up extremely compelled me to try and do so! Your writing style has been amazed me. Thanks, extremely wonderful post. 787120

    Reply

Leave a Comment