我找到了数独解算器代码,但是,我需要函数来返回网格而不是打印它。知道怎么回事吗?
import numpy as np
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,6,0,0,0,0,2,8,0],
[0,0,0,4,1,9,0,0,5],
[0,0,0,0,0,0,7,0,0]
]
def checker(y,x,n):
global grid
for i in range(0,9):
if grid[y][i] == n:
return False
for i in range(0,9):
if grid[i][x] == n:
return False
x0 = (x//3)*3
y0 = (y//3)*3
for i in range(0,3):
for j in range(0,3):
if grid[y0+i][x0+j] == n:
return False
return True
def solver(grid):
for y in range(9):
for x in range(9):
if grid[y][x] == 0:
for n in range(1,10):
if checker(y,x,n):
grid[y][x] = n
solver(grid)
grid[y][x] = 0
return
print(np.matrix(grid))
input("More?")
solver(grid)这个函数确实给了你正确的解决方案,但是,我想在我的另一个项目中调用这个函数,但我不能这样做,因为输出是打印而不是网格本身。
谢谢!
发布于 2020-02-24 01:30:31
在"def solver“函数中,将print更改为return。然后调用a=solver(grid)之类的函数,以便将返回值存储在a变量中。
https://stackoverflow.com/questions/60364811
复制相似问题