首页 > 解决方案 > 数独求解器:使用此程序不提供任何输出

问题描述

    grid=[[5,3,0,0,7,0,0,0,0],
          [6,0,0,1,9,5,0,0,0],
          [0,9,8,0,0,0,0,6,0],
          [8,0,0,0,6,0,0,0,3],
          [4,0,0,8,0,3,0,0,1],
          [7,0,0,0,2,0,0,0,6],
          [0,0,0,0,0,6,2,8,0],
          [0,0,0,4,1,9,0,0,5],
          [0,0,0,0,8,0,0,7,9]]
    print(grid)
    import numpy as np
    print(np.matrix(grid))
    def possible(y,x,n):
        global grid
        for i in range(9):
            if grid [y][i]==n:
                return False
        for j in range(9):
            if grid[j][x]==n:
                return False
        x0=(x//3)*3
        y0=(y//3)*3
        for i in range(3):
            for j in range(3):
                if grid[y0+i][x0+j]==n:
                    return False
        return True    
    def solve():
        global grid
        for y in range(9):
            for x in range(9):
                if grid[y][x]==0:
                    for n in range(1,10):
                        if possible(y,x,n):
                            grid[y][x]=n
                            solve()
                            grid[y][x]=0
                    """print(np.matrix(grid))"""      
                    return 
        print(np.matrix(grid))        
        input('More?')                
 solve()

我试图用这个程序解决数独难题,但是求解函数程序出了点问题,它没有给出任何输出,并且在代码中包含 print(np.matrix(grid)) 这条线将给出许多包含零的输出。继承人我的代码到目前为止。

标签: pythonsudoku

解决方案


推荐阅读