上篇将简单的数独游戏的解决方案和简单的UI界面都写清楚了, 下篇将把超难的数独游戏结题思路捋清楚了
格子排除法和数据排除法并不能解决多少数独问题,数独问题还是要通过猜测某个数据才能解决,难度再高一点的数独还需要猜测两个数据才能解
不用想,肯定是猜测某个只有两种可能的数据能够更快的确定这个数据,
不解释,直接上代码
# ----递归校验
def check_way_recursion(Data, num):
for x0, y0, x1, y1 in product(range(3), repeat=4):
if isinstance(Data[x0][y0][x1][y1], set) and len(Data[x0][y0][x1][y1]) == num[0]:
for data in list(Data[x0][y0][x1][y1]):
DataCopy = copy.deepcopy(Data)
DataCopy[x0][y0][x1][y1] = data
if check_way(DataCopy) is Result.Ok:
refresh_button(DataCopy)
tkinter.messagebox.showinfo('提示', '大哥,搞定!')
return Result.Ok
elif check_way(DataCopy) is Result.Unknow:
numCopy = copy.deepcopy(num