Я довольно новичок в python и программировании в целом, и в качестве первого проекта я работаю над решением судоку: я использую возвратный путь, и он, кажется, работает, когда используется сам по себе, но я хочу включить его в более крупной программе.
Проблема в том, что когда я просто печатаю () сетку после ее решения, она работает просто отлично (согласно следующему примеру кода):
def solve(grid):
for y in range(9):
for x in range(9):
if grid[y][x] == 0:
for n in range(1,10):
if possible(grid,x,y,n):
grid[y][x] = n
solve(grid)
grid[y][x] = 0
return
print(numpy.matrix(grid))
c = raw_input("More? [y/n]\n")
if c == 'n':
quit()
else:
pass
solve(grid)
Но когда я пытаюсь вернуть сетку вместо печати, она просто не работает и возвращает [[None]]:
def solve(grid):
for y in range(9):
for x in range(9):
if grid[y][x] == 0:
for n in range(1,10):
if possible(grid,x,y,n):
grid[y][x] = n
solve(grid)
grid[y][x] = 0
return
return grid
print(numpy.matrix(solve(grid)))
Есть идеи и объяснения по этому поводу? Как я могу просто вызвать функцию, присвоить ей свою сетку и заставить ее вернуть решенную сетку?