游戏规则: 每行每列数字不同,每个九宫格数字不一致,且灰色区域数字不一致!


# 判断每一行数字是否不同
def check_row(arr):for i in arr:if(len(i) != len(set(i))):return Falsereturn True
# 判断每一列数字不相同
def check_col(arr):arrDict = []for i in range(len(arr)):# 读取每一行的for j in range(len(arr[0])):arrDict.append(arr[i][j])if(len(arrDict) != len(set(arrDict))):return Falseelse:arrDict.clear()return True# 判断每个九宫格不相同
def check_every(arr):#找每个九宫格左上角的点dict2 = []i = 0while (i < len(arr)):j = 0while (j < len(arr)):for m in range(i, i + 3):for n in range(j, j + 3):tmp = [m, n]dict2.append(tmp)j += 3i += 3n = 9  # 大列表中几个数据组成一个小列表dict3 = [dict2[i:i + n] for i in range(0, len(dict2), n)]checkTmp = []for aa in dict3:for mm in aa:checkTmp.append(arr[mm[0]][mm[1]])if (len(checkTmp) != len(set(checkTmp))):return FalsecheckTmp.clear()return True
# 指定区域数字不相同
def check_appoint(arr):points = [[1, 1], [1, 5], [5, 1], [5, 5]]dict3 = []for i in range(len(points)):# 遍历每一个左上角的点rowNum = points[i][0]colNum = points[i][1]dict3.clear()for m in range(rowNum, rowNum + 3):for n in range(colNum, colNum + 3):tmp = [m, n]dict3.append(tmp)# 读取列表中每个点对应的值listTmp = []for point in dict3:listTmp.append(arr[point[0]][point[1]])if (len(listTmp) != len(set(listTmp))):return Falsereturn Truearr = [[0,0,0,1,3,8,5,0,0],[0,0,0,0,0,4,2,0,0],[0,0,0,0,0,0,0,6,3],[7,0,0,0,0,0,0,5,8],[2,0,0,0,0,0,0,0,4],[8,3,0,0,0,0,0,0,2],[3,8,0,0,0,0,4,0,0],[0,0,9,4,0,0,0,3,0],[0,0,6,8,1,3,0,0,0]
]
# arr = [
#     [6,7,2,1,3,8,5,4,9],
#     [9,5,3,7,6,4,2,8,1],
#     [4,1,8,2,5,9,7,6,3],
#     [7,6,4,9,2,1,3,5,8],
#     [2,9,5,3,8,6,1,7,4],
#     [8,3,1,5,4,7,6,9,2],
#     [3,8,7,6,9,2,4,1,5],
#     [1,2,9,4,7,5,8,3,6],
#     [5,4,6,8,1,3,9,2,7]
# ]# 每一行都是由1-9构成,所以创建一个标准列表
pipList = [0,1,2,3,4,5,6,7,8,9]
# 数独中每一行都有数字,减掉已有的,剩下的为每一行需要填写的数字
needList = []
for i in range(0,len(arr)):needList.append(list(set(pipList).difference(set(arr[i]))))print(needList)
# 开始往每一行数组中填写needList[i],编不下去了!!!if(check_row(arr) & check_col(arr) & check_every(arr) & check_appoint(arr)):print(True)
else:print(False)

编不下去了,求指教! 

【Python】9×9数独计算器相关推荐

  1. python课程设计计算器_Python设计实现的计算器功能完整实例

    本文实例讲述了Python设计实现的计算器功能.分享给大家供大家参考,具体如下: 通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/ ...

  2. 《Python智能数独说明书》源码下载...

    <Python智能数独说明书> 如需获取原文档:公众号回复Python智能数独说明书. 文章目录 <Python智能数独说明书> 一.需求分析 1.1技术现状 1.2题目阐述 ...

  3. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  4. delphi dbgrideh 遍历每一个单元格_用Python解数独[1]:求每个单元格的行值域

    目录 用Python解数独[0] 用Python解数独[1]:求每个单元格的行值域 用Python解数独[2]:求列值域和九宫格值域 用Python解数独[3]:求总值域 用Python解数独[4]: ...

  5. python deepcopy函数_用Python解数独[6]:递归获得最终答案

    目录 用Python解数独[0] 用Python解数独[1]:求每个单元格的行值域 用Python解数独[2]:求列值域和九宫格值域 用Python解数独[3]:求总值域 用Python解数独[4]: ...

  6. python整数加法计算器_Python应用实例赏析2.1简单计算

    在日常应用中,我们会经常使用计算器进行计算,有些时候普通计算器的功能不能满足需要,例如使用计算机系统自带的计算器,计算不能超过32位数,手机自带计算器不能超过15位等(我的电脑和手机),也可能计算需要 ...

  7. 用python设计数独的心得体会_python实现数独算法实例

    本文实例讲述了python实现数独算法的方法.分享给大家供大家参考.具体如下: # -*- coding: utf-8 -*- ''' Created on 2012-10-5 @author: Ad ...

  8. 随想录(python编写的计算器和贪吃蛇游戏)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] python除了用来开发server.web之外,一般还可以用来开发客户端,特别是用来做一些de ...

  9. 6个步骤教你用Python解数独!(含实例代码)

    前言: 今天为大家带来的内容是:6个步骤教你用Python解数独!(含实例代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,喜欢本文内容的话记得点赞转发收藏不迷路哦! ...

  10. 【Numpy】用Python求解数独

    目录 [题目]列出如下数独问题的2种数学模型,分析两种模型的优缺点,并用Excel求解,将结果填上.这里用Python进行求解: 一.代码 model1 二.代码 model2 三.求解结果 [题目] ...

最新文章

  1. python 学术_Python
  2. 学习笔记 线程异步请求过程
  3. python 错误代码_PYTHON错误代码及解决办法
  4. Python 基础 函数
  5. 全血微量元素团标今起实施 李喜贵:两项标准填补国内外空白
  6. ai驱动数据安全治理_AI驱动的Web数据收集解决方案的新起点
  7. 图像特征 可视化_使用卫星图像可视化建筑区域
  8. fibonacci数列的题目——剑指Offer
  9. Magento Helper简介
  10. 华科计算机网络报告,华科-计算机网络实验报告-Java Socket编程-网络组建实验
  11. neo4j 查 match
  12. java.sql.SQLException: Protocol violation 解决方法
  13. H3C设备之 EASY NAT
  14. 如何在苹果Mac上删除APFS卷?
  15. c语言怎样设计程序界面,「分享」C语言如何编写图形界面
  16. 3D图形学(4):纹理贴图
  17. 苹果发布iOS16正式版,各机型升级建议
  18. csp202112-1:序列查询 题解
  19. 手机闪存速度排行_带大家了解一下 手机闪存UFS和EMMC的区别(科普)
  20. Daily record-November

热门文章

  1. 工程项目成本费用明细表_项目成本费用明细表
  2. android自动计步_Android计步模块(类似微信运动)
  3. js表单验证 - 数字
  4. 联想电脑无法自动修复此计算机,Win10自动修复无法开机的解决方法(完美解决)...
  5. 前言【高等数学教程(单变量微积分)】
  6. linux键盘修改工具,Linux 键盘映射的修改(Console)
  7. GJB用于试验的计算机软件,GJB9001C-2017版标准培训课件.ppt
  8. 鸢尾花(Iris)数据集
  9. sql 插入多行数据
  10. python 进阶_GitHub - eastlakeside/interpy-zh: 《Python进阶》(Intermediate Python 中文版)...