数独相信大家都玩过,它被称为“聪明人的游戏”,在很多人眼里:

会玩数独=高智商

为什么?因为数独能够培养观察力,提高反应力:数独的练习能够锻炼手眼脑的协调性、提高手脑并用的能力,锻炼大脑的思维灵活度,全面提高反应力。

非常适合孩子在成长过程中锻炼大脑,适合成年人在生活中激活思维。

不过当我们遇到不会解的数独怎么办?对于我们这些学Python的人而言,答案当然是用Python算出来啦!

基于 Pygame-Sudoku-Solver 这个开源项目,可视化解决数独问题变得极其简单:

https://github.com/tymscar/Pygame-Sudoku-Solver

1.准备

开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

此外,推荐大家用VSCode编辑器,因为它可以在编辑器下方的终端运行命令安装依赖模块:Python 编程的最好搭档—VSCode 详细指南。

Windows环境下打开 Cmd (开始-运行-CMD),苹果系统环境下请打开 Terminal (command+空格输入Terminal),准备开始输入命令安装依赖。

1.在终端输入以下命令下载该开源库

git clone https://github.com/tymscar/Pygame-Sudoku-Solver.git

2.使用cd命令进入该文件夹,并安装依赖:

cd Pygame-Sudoku-Solverpip install -r requirements.txt

接下来,可以试试运行该项目了:

python solver.py

此时会出现一个空白3*3的九宫格

2.怎么解题

这个开源项目的解题方法如下:

1.输入题目数字 — 你只需要点击空白区域,此时会回显绿色方块,输入数字,如果数字合法则会填入框内,如果不合法则会闪现红色。

2.当你将数独题目里的所有数字填写完毕,单击空格键即可开始运算:

而且,细心的作者还帮大家准备了夜晚模式,单击“d”键可切换到夜晚模式:

3.原理

所有的解题源代码都放在了solver.py文件中,大家可以在里面看到整个解题过程。

作者没有写任何注释,但是代码逻辑思路是清晰的,比如核心判断逻辑,Cell类里的 isValid, 用于判断某个值 (what变量) 放进某个 Cell 里是否合法:

此处,lineV.cells 表示数组中每一列组成的cell;lineH.cells即每一行组成的cell;box.cells即每个子九宫格。他们都有一个共同的特点:其中不能出现重复的值。

因此你会看到如果某个值存在于这些cells当中,isValid直接返回False,表明其不应该出现在这个位置。

如果你的网络较差,git clone拿不到代码,可以在公众号后台回复:数独 下载源代码。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。

有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)不只是一个宝典欢迎关注公众号:Python实用宝典

python漂亮界面 数独游戏源代码_Python编写的超帅数独可视化解题器相关推荐

  1. python数独解题器_Python编写的超帅数独可视化解题器

    数独相信大家都玩过,它被称为"聪明人的游戏",在很多人眼里: 会玩数独=高智商 为什么?因为数独能够培养观察力,提高反应力:数独的练习能够锻炼手眼脑的协调性.提高手脑并用的能力,锻 ...

  2. Python编写的超帅数独可视化解题器

    数独相信大家都玩过,它被称为"聪明人的游戏",在很多人眼里: 会玩数独=高智商 为什么?因为数独能够培养观察力,提高反应力:数独的练习能够锻炼手眼脑的协调性.提高手脑并用的能力,锻 ...

  3. python推箱子小游戏源代码_Python制作推箱子小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏简介 ...

  4. python最简单的游戏源代码_Python 练习: 简单角色游戏程序

    要求: 1.创建三个游戏人物,分别是: 苍井井,女,18,初始战斗力1000 东尼木木,男,20,初始战斗力1800 波多多,女,19,初始战斗力2500 2.游戏场景,分别: 草丛战斗,消耗200战 ...

  5. Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式

    Python版儿童识字游戏源代码,结合植物大战僵尸和儿童识字的小游戏,含学习模式和娱乐模式. 娱乐模式下,僵尸会头顶不同的汉字,此时屏幕会提示要消灭的汉字,移动豌豆消灭对应汉字的僵尸,如果攻击非提示汉 ...

  6. Python版见缝插针小游戏源代码,球球旋转大作战源程序

    见缝插针游戏是一款非常考验玩家手眼协调能力的休闲益智虐心虐脑小游戏,玩法很简单,但要过关却很有挑战性哟! 主要是将一系列的小球,插入到旋转的摩天轮转盘当中,插入过程中不能碰到旋转的摩天轮上的其他小球, ...

  7. Python魂斗罗小游戏源代码

    Python魂斗罗小游戏源代码源程序,主程序Contra.py,游戏简易使用说明:A:向左,D:向右,W:跳起,S:趴下,J:射击,P:退出程序. 程序运行截图: Contra.py ''' 公众号: ...

  8. python漂亮界面 数独游戏源代码_使用Python编写数独游戏自动出题程序

    原标题:使用Python编写数独游戏自动出题程序 数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. fromrandom importshuffle, randrange ...

  9. python数独游戏源代码_使用Python编写数独游戏自动出题程序

    数独是一个很好玩的游戏,可以锻炼推理能力.下面的代码可以自动生成数独游戏题目. from random import shuffle, randrange def generate(): # 初始网格 ...

  10. python数独游戏源代码100行_python实现自动解数独小程序

    跟朋友最近聊起来数独游戏,突发奇想使用python编写一个自动计算数独解的小程序. 数独的规则不再过多阐述,在此描述一下程序的主要思路: (当前程序只针对于简单的数独,更复杂的还待深入挖掘) 1.计算 ...

最新文章

  1. php exif信息,php通过exif_read_data函数获取图片的exif信息
  2. 【知识星球】LeNet5,AlexNet,VGG,MobileNet它们的前身都是什么,你知道吗?
  3. 修改JAVA代码,需要重启Tomcat的原因
  4. 一个坑爹的问题,js注释掉夹杂的el表达式页面不显示(代码颜色坑了我)
  5. vue.js:634 [Vue warn]: Error in render: “TypeError: Cannot read property ‘matched‘ of undefined“
  6. Linux查看GPU使用情况
  7. 不想打造物联网的制造型企业不是一家合格的百年老店
  8. arcpy 基于python制作六十进制与十进制互换的工具箱
  9. Android简单模仿微信扫一扫二维码
  10. 熟练使用Wireshark排除网络故障的方法
  11. LncRNA与代谢组联合分析
  12. 有向图(网)、无向图(网)的构造以及遍历
  13. 配置VScode上基于WSL的lc3汇编语言环境
  14. 线性规划在MATLAB中的表示,Matlab在线性规划中的应用
  15. GPIO之推挽输出和开漏输出
  16. 利用PYTHON出小学数学题
  17. 云计算 openstack 云平台搭建详细教程(基于 Vmware 虚拟机搭建)
  18. 汽车GPS定位器在汽车金融风控中如何把控
  19. HTML情人节表白代码,给女朋友的电子情书代码,女朋友表白代码
  20. 服务器搭建——Wampserver32

热门文章

  1. 不是技术牛人,如何进去自己梦想的公司
  2. EfficientNet网络结构详解
  3. Android 7.1.1源码下载
  4. Cipher Block chaining
  5. 视频会议中的AEC、AGC、ANS是什么?
  6. Ndo v3.1发布了!
  7. keil5编译器出现Undefined symbol time (referred from xxx.o).
  8. 【WSL2 Win10】解决子系统中nividia-smi出现的Failed to initialize NVML GPU access blocked by the operating systeM
  9. Python中的切片(Slice)操作详解
  10. python list切片_python list切片