在玩游戏,解数独解题

0.数独简介
  数独(すうどく,Sūdoku)是一种运用纸、笔进行演算的逻辑游戏。以九阶数独为例,玩家需要根据9&9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫内的数字均含1-9,不重复。
  1)4阶(可填数字范围1~4,宫格2阶)
  2)9阶(可填数字范围1~9,宫格3阶)
  3)16阶(可填数字范围1~16,宫格4阶)
  *见附录
1.数独的表示
  对于N阶数独可以用一个N*N的二维数组表示
  1)数独阶数GridRank=N
  2)宫格阶数SubGridRank=Sqrt(N)
  3)数独包含宫的阶数SubGridIncludeRank=Sqrt(N)
& & & 4)可填最大数字MaxValue=N
& & & 5)可填最小数字MinValue=1&&
Public Class SudokuClass
Public Property Rank As Integer '数独的阶数
Return GridRank
Set(ByVal value As Integer)
GridRank = value
SubGridRank = CType(Math.Sqrt(value), Integer)
SubGridIncludeRank = SubGridRank
DataMaxValue = value
DataMinValue = 1
End Property
Public Property GridData As Integer?(,) '数独的数据
Private GridRank As Integer '数独的阶数
Private SubGridRank As Integer '子数独(宫)的阶数
Private SubGridIncludeRank As Integer '数独包含子数独(宫)的阶数
Private DataMaxValue As Integer '数独可填最大数值
Private DataMinValue As Integer '数独可填最小数值
''' &summary&
''' 实例化一个指定阶数的数独类
''' &/summary&
''' &param name="nRank"&指定的阶数&/param&
Public Sub New(nRank As Integer)
Me.Rank = nRank
  6)任意阶数独的表示(N&K2,K&1,K&Z)
    任意阶数独仅有一个宫,所以数独阶数和宫阶数相等。以7阶为例,设置GridRank=7,SubGridRank=7,SubGridIncludeRank=1即可。
2.数独的求解
  采用回溯法,直接寻找到一个空白格,尝试填入所有可能的数字,继续填下一个空白格,直至填满或者不能继续填入为止(不符合规则)。
  1)寻找空白格
    空白格的选择至关重要,当一个格子的限制越多,也就是可填入数字越少时,优先选择该空白格。这样做可以大大降低递归填格子的次数。
'查找当前空白格(最佳格)
Private Function getStartPoint(ByRef data As Integer?(,)) As Point
Dim gPoint As Point
Dim tempValue As Integer
Dim maxValue As Integer
'查找限制最多的空白格
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If data(i, j) = 0 Then
tempValue = 0
For k = 0 To GridRank - 1
If data(i, k) & 0 Then tempValue += 1
If data(k, j) & 0 Then tempValue += 1
If data((i \ SubGridIncludeRank) * SubGridIncludeRank + k \ SubGridIncludeRank, (j \ SubGridIncludeRank) * SubGridIncludeRank + (k Mod SubGridIncludeRank)) & 0 Then tempValue += 1
If tempValue & maxValue Then
maxValue = tempValue
gPoint.X = i
gPoint.Y = j
If maxValue & 0 Then
Return gPoint
gPoint.X = -1
gPoint.Y = -1
Return gPoint
End Function
    当确定空白格后就需要向其中填入数字了,一一筛选出符合规则的数字。规则就是格子当前行,当前列,当前宫不能有相同数值出现。
'判断同行同列同宫是否已经存在
Private Function GetExisting(ByRef data As Integer?(,), ByVal gX As Integer, ByVal gY As Integer, ByVal gValue As Integer) As Boolean
For k = 0 To GridRank - 1
If data(gX, k) = gValue OrElse data(k, gY) = gValue OrElse data((gX \ SubGridIncludeRank) * SubGridIncludeRank + k \ SubGridIncludeRank, (gY \ SubGridIncludeRank) * SubGridIncludeRank + (k Mod SubGridIncludeRank)) = gValue Then
Return True
Return False
End Function
  2)回溯法求解
    简单的递归调用即可。
'递归求解数独
Private Function GetValue(ByVal gData As Integer?(,)) As List(Of Integer?(,))
Dim ResultList As New List(Of Integer?(,))
Dim i, j As Integer
Dim tempPoint As Point = getStartPoint(gData)
i = tempPoint.X : j = tempPoint.Y
If i &= 0 AndAlso j &= 0 Then
For value = DataMinValue To DataMaxValue
If GetExisting(gData, i, j, value) = False Then
gData(i, j) = value
GetValue(gData)
gData(i, j) = 0
'新增一个结果
ResultList.Add(gData)
Return ResultList
End Function
  3)其他
    判断一个序列(数组)中是否有重复数字
''' &summary&
''' 判断一个序列是否有重复数字
''' &/summary&
''' &param name="Numbers"&&/param&
''' &returns&&/returns&
Private Function IsDuplicate(ByVal Numbers() As Integer) As Boolean
Array.Sort(Numbers)
If Numbers.Length & 1 Then
For i = 0 To Numbers.Length - 2
If Numbers(i) = Numbers(i + 1) Then Return True
Return False
End Function
    判断数独是否填写完毕,无空白格且所有格子填入的数字符合规则
Public Function IsWin(ByVal Numbers As Integer?(,)) As Boolean
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If Not Numbers(i, j).HasValue Then Return False '出现空格
Dim TempInt As New List(Of Integer)
'判断行重复
For i = 0 To GridRank - 1
TempInt.Clear()
For j = 0 To GridRank - 1
TempInt.Add(CInt(Numbers(i, j)))
If IsDuplicate(TempInt.ToArray) Then Return False
'判断列重复
For j = 0 To GridRank - 1
TempInt.Clear()
For i = 0 To GridRank - 1
TempInt.Add(CInt(Numbers(i, j)))
If IsDuplicate(TempInt.ToArray) Then Return False
'判断宫格重复
For i = 0 To GridRank - 1 Step SubGridRank
For j = 0 To GridRank - 1 Step SubGridRank
TempInt.Clear()
For i2 = 0 To SubGridRank - 1
For j2 = 0 To SubGridRank - 1
TempInt.Add(CInt(Numbers(i + i2, j + j2)))
If IsDuplicate(TempInt.ToArray) Then Return False
Return True
End Function
    判断当前数独是否符合规则,检查每一个非空白格的数字的同行、同列、同宫是否重复。
Public Function IsImpossible(ByVal Numbers As Integer?(,)) As Boolean
Dim temp As Integer?
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If Not Numbers(i, j) = 0 Then
temp = Numbers(i, j)
Numbers(i, j) = 0
If GetExisting(Numbers, i, j, CInt(temp)) Then Numbers(i, j) = temp : Return True
Numbers(i, j) = temp
Return False
End Function
  1)16阶(可填数字范围1~16,宫格4阶)
  2)VB.NET类&& C#类(转换,仅供参考)
Public Class SudokuClass
Public Property Rank As Integer '数独的阶数
Return GridRank
Set(ByVal value As Integer)
GridRank = value
SubGridRank = CType(Math.Sqrt(value), Integer)
SubGridIncludeRank = SubGridRank
DataMaxValue = value
DataMinValue = 1
End Property
Public Property GridData As Integer?(,) '数独的数据
Private GridRank As Integer '数独的阶数
Private SubGridRank As Integer '子数独(宫)的阶数
Private SubGridIncludeRank As Integer '数独包含子数独(宫)的阶数
Private DataMaxValue As Integer '数独可填最大数值
Private DataMinValue As Integer '数独可填最小数值
''' &summary&
''' 实例化一个指定阶数的数独类
''' &/summary&
''' &param name="nRank"&指定的阶数&/param&
Public Sub New(nRank As Integer)
Me.Rank = nRank
Public Function GenerateInitialNumbers() As Integer?(,)
ReDim GridData(GridRank - 1, GridRank - 1)
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
GridData(i, j) = 0 '暂无初始数字生成规则,请从数独文件导入
Return GridData '返回一个空白数独
End Function
Public Function IsImpossible(ByVal Numbers As Integer?(,)) As Boolean
Dim temp As Integer?
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If Not Numbers(i, j) = 0 Then
temp = Numbers(i, j)
Numbers(i, j) = 0
If GetExisting(Numbers, i, j, CInt(temp)) Then Numbers(i, j) = temp : Return True
Numbers(i, j) = temp
Return False
End Function
Public Function IsWin(ByVal Numbers As Integer?(,)) As Boolean
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If Not Numbers(i, j).HasValue Then Return False '出现空格
Dim TempInt As New List(Of Integer)
'判断行重复
For i = 0 To GridRank - 1
TempInt.Clear()
For j = 0 To GridRank - 1
TempInt.Add(CInt(Numbers(i, j)))
If IsDuplicate(TempInt.ToArray) Then Return False
'判断列重复
For j = 0 To GridRank - 1
TempInt.Clear()
For i = 0 To GridRank - 1
TempInt.Add(CInt(Numbers(i, j)))
If IsDuplicate(TempInt.ToArray) Then Return False
'判断宫格重复
For i = 0 To GridRank - 1 Step SubGridRank
For j = 0 To GridRank - 1 Step SubGridRank
TempInt.Clear()
For i2 = 0 To SubGridRank - 1
For j2 = 0 To SubGridRank - 1
TempInt.Add(CInt(Numbers(i + i2, j + j2)))
If IsDuplicate(TempInt.ToArray) Then Return False
Return True
End Function
''' &summary&
''' 判断一个序列是否有重复数字
''' &/summary&
''' &param name="Numbers"&&/param&
''' &returns&&/returns&
Private Function IsDuplicate(ByVal Numbers() As Integer) As Boolean
Array.Sort(Numbers)
If Numbers.Length & 1 Then
For i = 0 To Numbers.Length - 2
If Numbers(i) = Numbers(i + 1) Then Return True
Return False
End Function
''' &summary&
''' 返回指定位置的所有可填数字的序列
''' &/summary&
''' &param name="Numbers"&原数组&/param&
''' &param name="gX"&指定的位置的X值,从0开始&/param&
''' &param name="gY"&指定的位置的Y值,从0开始&/param&
''' &returns&&/returns&
Public Function GetEnabledNum(ByVal Numbers As Integer?(,), gX As Integer, gY As Integer) As Integer()
Dim NumList As New List(Of Integer)
For i = DataMinValue To DataMaxValue
If GetExisting(Numbers, gX, gY, i) = False Then NumList.Add(i)
Return NumList.ToArray
End Function
'递归求解数独
Private Function GetValue(ByVal gData As Integer?(,)) As List(Of Integer?(,))
Dim ResultList As New List(Of Integer?(,))
Dim i, j As Integer
Dim tempPoint As Point = getStartPoint(gData)
i = tempPoint.X : j = tempPoint.Y
If i &= 0 AndAlso j &= 0 Then
For value = DataMinValue To DataMaxValue
If GetExisting(gData, i, j, value) = False Then
gData(i, j) = value
GetValue(gData)
gData(i, j) = 0
'新增一个结果
ResultList.Add(gData)
Return ResultList
End Function
'查找当前空白格(最佳格)
Private Function getStartPoint(ByRef data As Integer?(,)) As Point
Dim gPoint As Point
Dim tempValue As Integer
Dim maxValue As Integer
'查找限制最多的空白格
For i = 0 To GridRank - 1
For j = 0 To GridRank - 1
If data(i, j) = 0 Then
tempValue = 0
For k = 0 To GridRank - 1
If data(i, k) & 0 Then tempValue += 1
If data(k, j) & 0 Then tempValue += 1
If data((i \ SubGridIncludeRank) * SubGridIncludeRank + k \ SubGridIncludeRank, (j \ SubGridIncludeRank) * SubGridIncludeRank + (k Mod SubGridIncludeRank)) & 0 Then tempValue += 1
If tempValue & maxValue Then
maxValue = tempValue
gPoint.X = i
gPoint.Y = j
If maxValue & 0 Then
Return gPoint
gPoint.X = -1
gPoint.Y = -1
Return gPoint
End Function
'判断同行同列同宫是否已经存在
Private Function GetExisting(ByRef data As Integer?(,), ByVal gX As Integer, ByVal gY As Integer, ByVal gValue As Integer) As Boolean
For k = 0 To GridRank - 1
If data(gX, k) = gValue OrElse data(k, gY) = gValue OrElse data((gX \ SubGridIncludeRank) * SubGridIncludeRank + k \ SubGridIncludeRank, (gY \ SubGridIncludeRank) * SubGridIncludeRank + (k Mod SubGridIncludeRank)) = gValue Then
Return True
Return False
End Function
using Microsoft.VisualB
using System.C
using System.Collections.G
using System.D
using System.D
public class SudokuClass
public int Rank {
//数独的阶数
get { return GridR }
GridRank =
SubGridRank = Convert.ToInt32(Math.Sqrt(value));
SubGridIncludeRank = SubGridR
DataMaxValue =
DataMinValue = 1;
public int?[,] GridData { get; set; }
//数独的数据
//数独的阶数
private int GridR
//子数独(宫)的阶数
private int SubGridR
//数独包含子数独(宫)的阶数
private int SubGridIncludeR
//数独可填最大数值
private int DataMaxV
//数独可填最小数值
private int DataMinV
/// &summary&
/// 实例化一个指定阶数的数独类
/// &/summary&
/// &param name="nRank"&指定的阶数&/param&
public SudokuClass(int nRank)
this.Rank = nR
public int?[,] GenerateInitialNumbers()
GridData = new Nullable&int&[GridRank, GridRank];
for (i = 0; i &= GridRank - 1; i++) {
for (j = 0; j &= GridRank - 1; j++) {
GridData[i, j] = 0;
//暂无初始数字生成规则,请从数独文件导入
return GridD
//返回一个空白数独
public bool IsImpossible(int?[,] Numbers)
int? temp = default(int?);
for (i = 0; i &= GridRank - 1; i++) {
for (j = 0; j &= GridRank - 1; j++) {
if (!(Numbers[i, j] == 0)) {
temp = Numbers[i, j];
Numbers[i, j] = 0;
if (GetExisting(ref Numbers, i, j, Convert.ToInt32(temp))){Numbers[i, j] =return true;}
Numbers[i, j] =
return false;
public bool IsWin(int?[,] Numbers)
for (i = 0; i &= GridRank - 1; i++) {
for (j = 0; j &= GridRank - 1; j++) {
if (!Numbers[i, j].HasValue)
return false;
//出现空格
List&int& TempInt = new List&int&();
//判断行重复
for (i = 0; i &= GridRank - 1; i++) {
TempInt.Clear();
for (j = 0; j &= GridRank - 1; j++) {
TempInt.Add(Convert.ToInt32(Numbers[i, j]));
if (IsDuplicate(TempInt.ToArray()))
return false;
//判断列重复
for (j = 0; j &= GridRank - 1; j++) {
TempInt.Clear();
for (i = 0; i &= GridRank - 1; i++) {
TempInt.Add(Convert.ToInt32(Numbers[i, j]));
if (IsDuplicate(TempInt.ToArray()))
return false;
//判断宫格重复
for (i = 0; i &= GridRank - 1; i += SubGridRank) {
for (j = 0; j &= GridRank - 1; j += SubGridRank) {
TempInt.Clear();
for (i2 = 0; i2 &= SubGridRank - 1; i2++) {
for (j2 = 0; j2 &= SubGridRank - 1; j2++) {
TempInt.Add(Convert.ToInt32(Numbers[i + i2, j + j2]));
if (IsDuplicate(TempInt.ToArray()))
return false;
return true;
/// &summary&
/// 判断一个序列是否有重复数字
/// &/summary&
/// &param name="Numbers"&&/param&
/// &returns&&/returns&
private bool IsDuplicate(int[] Numbers)
Array.Sort(Numbers);
if (Numbers.Length & 1) {
for (i = 0; i &= Numbers.Length - 2; i++) {
if (Numbers[i] == Numbers[i + 1])
return true;
return false;
/// &summary&
/// 返回指定位置的所有可填数字的序列
/// &/summary&
/// &param name="Numbers"&原数组&/param&
/// &param name="gX"&指定的位置的X值,从0开始&/param&
/// &param name="gY"&指定的位置的Y值,从0开始&/param&
/// &returns&&/returns&
public int[] GetEnabledNum(int?[,] Numbers, int gX, int gY)
List&int& NumList = new List&int&();
for (i = DataMinV i &= DataMaxV i++) {
if (GetExisting(ref Numbers, gX, gY, i) == false)
NumList.Add(i);
return NumList.ToArray();
//递归求解数独
private List&int?[,]& GetValue(int?[,] gData)
List&int?[,]& ResultList = new List&int?[,]&();
int i = 0;
int j = 0;
Point tempPoint = getStartPoint(ref gData);
i = tempPoint.X;
j = tempPoint.Y;
if (i &= 0 && j &= 0) {
for (value = DataMinV value &= DataMaxV value++) {
if (GetExisting(ref gData, i, j, value) == false) {
gData[i, j] =
GetValue(gData);
gData[i, j] = 0;
//新增一个结果
ResultList.Add(gData);
return ResultL
//查找当前空白格(最佳格)
private Point getStartPoint(ref int?[,] data)
Point gPoint = default(Point);
int tempValue = 0;
int maxValue = 0;
//查找限制最多的空白格
for (i = 0; i &= GridRank - 1; i++) {
for (j = 0; j &= GridRank - 1; j++) {
if (data[i, j] == 0) {
tempValue = 0;
for (k = 0; k &= GridRank - 1; k++) {
if (data[i, k] & 0)
tempValue += 1;
if (data[k, j] & 0)
tempValue += 1;
if (data[(i / SubGridIncludeRank) * SubGridIncludeRank + k / SubGridIncludeRank, (j / SubGridIncludeRank) * SubGridIncludeRank + (k % SubGridIncludeRank)] & 0)
tempValue += 1;
if (tempValue & maxValue) {
maxValue = tempV
gPoint.X =
gPoint.Y =
if (maxValue & 0) {
gPoint.X = -1;
gPoint.Y = -1;
//判断同行同列同宫是否已经存在
private bool GetExisting(ref int?[,] data, int gX, int gY, int gValue)
for (k = 0; k &= GridRank - 1; k++) {
if (data[gX, k] == gValue || data[k, gY] == gValue || data[(gX / SubGridIncludeRank) * SubGridIncludeRank + k / SubGridIncludeRank, (gY / SubGridIncludeRank) * SubGridIncludeRank + (k % SubGridIncludeRank)] == gValue) {
return true;
return false;
阅读(...) 评论()世界上迄今最难数独游戏的计算机解法(仅需30毫秒)
[问题点数:20分]
世界上迄今最难数独游戏的计算机解法(仅需30毫秒)
[问题点数:20分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年5月 高性能开发大版内专家分月排行榜第二2013年4月 高性能开发大版内专家分月排行榜第二
2013年5月 高性能开发大版内专家分月排行榜第二2013年4月 高性能开发大版内专家分月排行榜第二
2010年3月 专题开发/技术/项目大版内专家分月排行榜第二2009年6月 专题开发/技术/项目大版内专家分月排行榜第二2009年5月 专题开发/技术/项目大版内专家分月排行榜第二2009年1月 专题开发/技术/项目大版内专家分月排行榜第二
2010年11月 专题开发/技术/项目大版内专家分月排行榜第三2010年5月 专题开发/技术/项目大版内专家分月排行榜第三2009年12月 专题开发/技术/项目大版内专家分月排行榜第三2009年11月 专题开发/技术/项目大版内专家分月排行榜第三2009年8月 专题开发/技术/项目大版内专家分月排行榜第三2009年4月 专题开发/技术/项目大版内专家分月排行榜第三2009年3月 专题开发/技术/项目大版内专家分月排行榜第三2008年12月 专题开发/技术/项目大版内专家分月排行榜第三
2010年3月 专题开发/技术/项目大版内专家分月排行榜第二2009年6月 专题开发/技术/项目大版内专家分月排行榜第二2009年5月 专题开发/技术/项目大版内专家分月排行榜第二2009年1月 专题开发/技术/项目大版内专家分月排行榜第二
2010年11月 专题开发/技术/项目大版内专家分月排行榜第三2010年5月 专题开发/技术/项目大版内专家分月排行榜第三2009年12月 专题开发/技术/项目大版内专家分月排行榜第三2009年11月 专题开发/技术/项目大版内专家分月排行榜第三2009年8月 专题开发/技术/项目大版内专家分月排行榜第三2009年4月 专题开发/技术/项目大版内专家分月排行榜第三2009年3月 专题开发/技术/项目大版内专家分月排行榜第三2008年12月 专题开发/技术/项目大版内专家分月排行榜第三
2010年3月 专题开发/技术/项目大版内专家分月排行榜第二2009年6月 专题开发/技术/项目大版内专家分月排行榜第二2009年5月 专题开发/技术/项目大版内专家分月排行榜第二2009年1月 专题开发/技术/项目大版内专家分月排行榜第二
2010年11月 专题开发/技术/项目大版内专家分月排行榜第三2010年5月 专题开发/技术/项目大版内专家分月排行榜第三2009年12月 专题开发/技术/项目大版内专家分月排行榜第三2009年11月 专题开发/技术/项目大版内专家分月排行榜第三2009年8月 专题开发/技术/项目大版内专家分月排行榜第三2009年4月 专题开发/技术/项目大版内专家分月排行榜第三2009年3月 专题开发/技术/项目大版内专家分月排行榜第三2008年12月 专题开发/技术/项目大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。你所在的位置: >
> 数独解密小游戏
类型:|大小:6469K |日期:
标签: 、、、、、、|人气:182
游戏介绍:
这是一款智力类的小游戏,你要利用数字,进行解谜,这要考验你的智商和反应能力,如果你可以过关,说明你是非常聪明的人
这是一款智力类的小游戏,你要利用数字,进行解谜,这要考验你的智商和反应能力,如果你可以过关,说明你是非常聪明的人,来试试吧。
分享游戏:
如何开始:点一下子PLAY GAME - 点一下子PLAY THE PUZZLE - 选择小游戏难度 - 选择小游戏规格大小开始小游戏
游戏目标:利用数字,进行解谜
温馨提示:此游戏文件较大(6469K ),加载时请耐心等待..
如果喜欢请记住、你也可以搜索方便下次再玩
数独解密的其他版本
数独解密操作说明
鼠标操作鼠标点一下子方格
数独解密如何开始点一下子PLAY GAME - 点一下子PLAY THE PUZZLE - 选择小游戏难度 - 选择小游戏规格大小开始小游戏
数独解密游戏目标利用数字,进行解谜
热门小游戏推荐
玩过数独解密小游戏的用户还玩过
友情链接:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
99小游戏 All Rights Reserved.
皖ICP备号-1
温馨提示:抵制不良游戏,拒绝盗版游戏,注意自我保护,谨防受骗上当,适度游戏益脑,沉迷游戏伤身,合理安排时间,享受健康生活
水手风格小游戏版权归作者所有,如果侵犯了您的版权,请联系我们,本站将在3个工作日内删除复制地址:
小游戏,大乐趣
1.按键操作
mouseleft点击方格
2.如何开始
点击[PLAY]进入游戏
3.游戏目标
数独游戏,聪敏人最喜欢的游戏之一,开动脑筋把数字填进方格吧
7K7K网页游戏
7K7K儿童游戏
法律顾问:北京市诺恒律师事务所
京公网安备37
游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照来信告知,本网站将应您的要求删除。
7k7k小游戏温馨提示:适度游戏娱乐,沉迷游戏伤身,合理安排时间,享受快乐生活……
该游戏已收藏数独9981-sudoku 9981-专业数独网站 数独,数独游戏,数独下载,数独论坛,数独技巧
数独博士5.0为数独博士最新版本,完超越前面版本。具有以下特点:
一:数独博士完全不同于以往版本,改进的出题系统,使得不产生任何垃圾题目,题题经典,让你尽享受数独游戏带来的无穷乐趣。
二:改进了批量产生候选数的功能,让你更关注于逻辑性的问题,游戏起来更加流畅。
三:断点设置可以让您解答更高难的题目。
四:候选数自动填充,自动更新。
五:颜色标注功能,使您可以更方便的使用高级解题技巧。
六:可以保存和重复所有的解题步骤。
七:可打印数独题目,支持6种打印样式。
八:可以导入多种格式的题目,并可以支持多种格式的题目导出。
九:可以自己创建数独题目。
十:可以保存数独题目为图片文件。
十一:改进的提示系统,模拟人工进行解题,可以通过这个工具快速的学习各种数独技巧。
十二:改进了显示部分候选数功能,现在支持选择显示多个候选数功能。
十三:增加了纸笔模式,玩家们可以自己做标记,完全模拟用铅笔在纸上做数独题一样。
(日语:数独 すうどく)是一种源自18世纪末的瑞士,后在美国发展、并在日本得以发扬光大的数学智力拼图游戏。拼图是九宫格(即3格宽×3格高)的正方形状,每一格又细分为一个九宫格。在每一个小九宫格中,分别填上1至9的数字,让整个大九宫格每一列、每一行的数字都不重复。
数独的玩法逻辑简单,数字排列方式千变万化。不少教育者认为数独是锻炼脑筋的好方法。
数独网站介绍
数独9981网站是中国九宫数独游戏(sudoku)的专业数独游戏网站,集九宫数独游戏下载,九宫数独游戏技巧,数独题目,数独解题方法,数独论坛,数独工具等于一体。目前网站提供的软件有数独博士,数独计算器器(数独助手),下一步计划是开发免费在线数独游戏,以及免费的在线数独题目下载。丰富数独技巧教学的内容,
增加骨灰级别的数独难题精解栏目。目前数独计算器(数独助手)正在进行2.0的开发,2.0基本上是对数独计算器1.0版的推翻重新架构,试图提供人性化的数独解题方法,完全模拟人脑的思维过程解题,并且能一步一步的讲解每步的理由。大家可以从数独助手的运行过程掌握更好的解数独题技巧,作为数独技巧教学的工具。
数独计算器
数独计算器(数独助手)试图提供人性化的数独解题方法,完全模拟人脑的思维过程解题,并且能一步一步的讲解每步的理由。我们希望数独计算器成为很好的使用逻辑方法解数独的工具,大家可以从数独助手的运行过程掌握更好的解数独题技巧,作为数独技巧教学的工具。数独计算器可以进行一步一步计算、指定步数计算、一次性计算,对于每一步计算给出详细的说明。对于有多个解的数独题目,会给出提示,并可人工干预。对每一步计算生成步骤列表,可以回到任意步骤进行研究。
无需注册,免费使用
Email:&&&}

我要回帖

更多关于 数独游戏技巧 图解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信