数独游戏怎么解?python算法告诉你!!!下篇

本文是数独游戏解题系列的下篇,重点讲解如何通过Python算法解决超难数独问题。介绍了一种基于猜测的解题方法,包括只猜测一个数据、深度校验和超级校验等策略,能有效应对不同难度级别的数独挑战。文中提供了具体的代码实现和示例数据,适合编程爱好者学习研究。
摘要由CSDN通过智能技术生成

上篇将简单的数独游戏的解决方案和简单的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值