赞
踩
数独相信大家都玩过,它被称为“聪明人的游戏”,在很多人眼里:
会玩数独=高智商
为什么?因为数独能够培养观察力,提高反应力:数独的练习能够锻炼手眼脑的协调性、提高手脑并用的能力,锻炼大脑的思维灵活度,全面提高反应力。
非常适合孩子在成长过程中锻炼大脑,适合成年人在生活中激活思维。
不过当我们遇到不会解的数独怎么办?对于我们这些学Python的人而言,答案当然是用Python算出来啦!
基于 Pygame-Sudoku-Solver 这个开源项目,可视化解决数独问题变得极其简单:
https://github.com/tymscar/Pygame-Sudoku-Solver
开始之前,你要确保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-Solver
- pip install -r requirements.txt
接下来,可以试试运行该项目了:
python solver.py
此时会出现一个空白3*3的九宫格
这个开源项目的解题方法如下:
1.输入题目数字 — 你只需要点击空白区域,此时会回显绿色方块,输入数字,如果数字合法则会填入框内,如果不合法则会闪现红色。
2.当你将数独题目里的所有数字填写完毕,单击空格键即可开始运算:
而且,细心的作者还帮大家准备了夜晚模式,单击“d”键可切换到夜晚模式:
所有的解题源代码都放在了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实用宝典
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。