我正在尝试通过将要迭代的空平方按照可能的值数量排序来优化我的数独求解器。但是,当我对其进行测试时,它会跳过值,以便返回部分填充的木板。
def available(ary, index):
ro = set(([ary[i].value for i in ary[index].values]))
return [x for x in range(1,10) if x not in ro]
def Solver(empty, index2):
global li, backtrack
if index2 == len(empty):
return True
empty = empty[0:index2] + sorted(empty[index2 + 1: ], key = lambda x: len(available(li, x)), reverse = True)
for guess in available(li, empty[index2]):
li[empty[index2]].value = guess
index2 += 1
if Solver(empty, index2):
return True
backtrack += 1
li[empty[index2]].value = 0
index2 -= 1
return False