Steam 游戏 《Sudoku Universe(数独宇宙)》——[数独基本局分析]
日期:2020.02.12
博客期:152
星期三
老师给的任务都做完了,15篇博客也都写好了,剩下的几天居然还要每天写一篇~唉~为难我 PH ,剩下的几天就把 我的数独要义分享一下吧!
1、基本局规则
数独表是一个 9 X 9 的宫格!其中对这个 81宫格 的每一种划分的区块内,标注着不重复的 1 ~ 9 数字!

一共有三种划分方法:
第一种——像上面的图一样,中间的粉线把 81 宫格分成了 9 个 九宫格!
第二种——上面的每一行都看作一个区块(上面的八条横线,将 81宫格 划分成 9 行 )
第三种——上面的每一列都看作一个区块(上面的八条竖线,将 81宫格 划分成 9 列)
将上述三种划分的区块里 1~9数字不重复的填入,这就是我们数独游戏的内容了!(其实我不知道怎么玩,也没有看过规则,这是自己总结的)
2、我的开局思路
(a). 首先需要找到表格上未填入的数字每一种有多少个,找到剩余未填数目最少的那一个(如上图就是 6 ,它剩余 5 个是没有填的)
(b). 我们看看有什么地方可以填入 6

(c). 看右上角的九宫格,由于它的下面两个九宫格都有 6,分析得出结论——左上角的 6 应该在 这个九宫格的第 2 列,然后分析行,得出结论——左上角的 6 应该在这个九宫格的第 1 行 或 第 3 行,综上所述 6 的坐标应该是 (1,2) 或 (3,2)位置【九宫格内】!因为 (3,2)位置已经有了数字 4,所以 6 应该在 (1,2)位置。
(d). 同理,找到其余结果。(剩下的两个九宫格里的 6 没有办法找到,因为是有 2 种可能,所以我们只标记一下)

(e).可以继续选择去找下一个(除了已经处理过的 6 以外)剩余数目最小的数字,去操作。

(f). 然后我就发现,做不动了!怎么办呢?我们可以根据 竖列的性质来做,因为每一竖列划分也是不能 同为一值 的。(比如最右方 1 6 4 已经占领了右下九宫格的最后一列,所以我们的 2 只能在前两列出现,但是右上九宫格的 2 出现在了第一列,所以 2 只能在右下九宫格的 (2,3) 位置了)。
(g). 还有呢?我们可以做横列分析这个是比较笨的方法,我能不用就不用!
原理——一个位置可能出现的数值集合 = {1,2,3,4,5,6,7,8,9} - {在这一行出现过的数值} - {在这一列出现过的数值} - {在这一个九宫格出现过的数值},当这个集合只能有 1个数值的时候我们就可以做判断了。
适用范围——当某一行和某一列的出现过的数值集合相差较大时,以及某一个划分已经有8个数值填好了的情况。
举例——上面图中的 8 号位置的 7 号位所在行出现数值集合 = {2,3,4,5,6},列对应集合 = {1,5,6,7,9},所以只能填 8 了。
(h). 那这样就可以了吗?显然不是这样!看下图的提示位置实际上能出现的值里没有 9,为什么呢?因为 1 号位 九宫格的 6 号位是 9 所以 第 3 列是不可能有 9 的,进而确定了 7 号位九宫格的 9 只能出现在 (3,1) 和 (3,2) 位置,也就是说第 3 行,所以自动绑定了 8、9 号位的九宫格内 9 不能出现在 第 3 行!同理,可以得到 9 号位九宫格的 9 只能出现在 第三列。

(i). 特别的还有 多项对应,就是比如 有 3 个位置, 第一个位置可能取值于 {1,2,3}中的一个,而第二第三位置可能取值{2,3}中的一个!那么第一个位置只可能是 1!
Steam 游戏 《Sudoku Universe(数独宇宙)》——[数独基本局分析]的更多相关文章
- Steam 游戏 《Sudoku Universe(数独宇宙)》、《Sudoku Killer(数独杀手)》、《Sudoku Jigsaw(数独拼图)》数字位置解析 ---------C# 数独程序解析(2020年寒假小目标11)
日期:2020.02.11 博客期:151 星期二 今天,准备肝一个 C# 的数独读写工具(汇编语言也在努力学习命令方法中...),这三个游戏我早就买下了,一直放在 Steam 库里积灰,看着它的成就 ...
- Steam游戏黑屏与游戏直接安装方法
黑屏原因主要是360禁止了反作弊进程,解决方法: Steam游戏目录: Steam\steamapps\common\*** 例如黎明杀机,备份时候可直接备份该目录下 Dead by Daylight ...
- 基于steam的游戏销量预测 — PART 1 — 爬取steam游戏相关数据的爬虫
语言:python 环境:ubuntu 爬取内容:steam游戏标签,评论,以及在 steamspy 爬取对应游戏的销量 使用相关:urllib,lxml,selenium,chrome 解释: 流程 ...
- Steam游戏《Nine Parchments(九张羊皮纸)》修改器制作-[先使用CE写,之后有时间的话改用C#](2020年寒假小目标02)
日期:2020.01.09 博客期:122 星期四 [温馨提示]: 只是想要修改器的网友,可以直接点击此链接下载: 只是想要部分CT文件的网友,可以直接点击此链接下载: 没有博客园账号的网友,可以将页 ...
- Steam游戏《Northgard(北境之地)》修改器制作
日期:2021.06.07 博客期:181 星期一 [温馨提示]: 我现在把资源先放到开头,不想研究学习的就直接取用.如果修改器失效了,你们可以在博客园本页直接评论,也可以给我发邮件告诉我,就是不要到 ...
- 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm ...
- [Leetcode 37]*数独游戏 Sudoku Solver 附解释
[题目] 每一行.每一列.每个3*3的格子里只能出现一次1~9. [思路] 参考了思路,附加了解释. dfs遍历所有非空格子,n是已经填好的个数. 初始化条件.n=81,都填了,返回结束.对于已经填好 ...
- HDU 1426 Sudoku Killer【DFS 数独】
自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品— ...
- LeetCode 37 Sudoku Solver(求解数独)
题目链接: https://leetcode.com/problems/sudoku-solver/?tab=Description Problem : 解决数独问题,给出一个二维数组,将这个数独 ...
随机推荐
- IntelliJ IDEA 2017.3百度-----文件树状结构
- 第四十篇 入门机器学习——Numpy.array的基本操作——向量及矩阵的运算
No.1. Numpy.array相较于Python原生List的性能优势 No.2. 将向量或矩阵中的每个元素 + 1 No.2. 将向量或矩阵中的所有元素 - 1 No.3. 将向量或矩阵中的所有 ...
- 每天进步一点点------Allegro生成Gerber文件
Allegro如何生成光绘文件 -------------------制板用文件有钻孔文件和底片文件,最后给板厂的文件为:---------------------------普通二层板:nc_par ...
- arcgis计算X坐标值、Y坐标值
arcgis计算X坐标值.Y坐标值 要计算的字段上点击右键,选择计算几何,弹出计算几何对话框.可以设置属性.坐标系.单位等.
- 网站调用qq第三方登录
1. 准备工作 (1) 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. ① 注册QQ互联开发者账号 网址 https:/ ...
- 线性筛-三合一,强大O(n)
校内CJOJ2395by Jesse Liu 筛法三合一 Euler.Möbius.Prime函数 基于数论的积性函数 gcd(a,b)=1 则 ƒ(ab)=ƒ(a)ƒ(b) #include & ...
- 数学算法(一):快速求斐波那契数第n项通过黄金分割率公式
有一个固定的数学公式= =,不知道的话显然没法应用 首先黄金分割率接近于这个公式, (以下为黄金分割率与斐波那契的关系,可跳过) 通过斐波那契数列公式 两边同时除以 得: (1) 注意后一项比前一项接 ...
- m大子段和 hdu1024
给出n个数,m个区间: 求选区m个区间的最大值: #include<cstdio> #include<algorithm> #include<math.h> #in ...
- 040_字符串连接符 041_条件运算符目 042_运算符优先级_逻辑与或优先问题 043_自动类型转化 044_强制类型转换 045_基本类型常见错误_溢出_L问题
040_字符串连接符 package test_package; /** * 字符串运算符 * @author * */public class TestOperator05 { public sta ...
- Git - 05. git log & git show
1. 概述 有了提交, 就必须有日志 日志用处很多, 这里我就不多说了 2. 项目日志 概述 查看当前分支的 提交记录 命令 普通查看 命令 > git log 显示 commit id 包括 ...