#include<iostream>
using namespace std; bool heng(int **sudo, int a, int b, int value)
{
bool flag = true;
for(int i=0; i<9; i++)
{
if(sudo[a][i]==value)
{
flag = false;
}
}
return flag;
} bool shu(int **sudo, int a, int b, int value)
{
bool flag = true;
for(int i=0; i<9; i++)
{
if(sudo[i][b]==value)
{
flag = false;
}
}
return flag;
} bool fang(int **sudo, int a, int b, int value)
{
bool flag = true;
int x = a/3*3;
int y = b/3*3; for(int i = 0; i<3; i++)
{
for(int j=0; j<3; j++)
{
if(sudo[x+i][y+j]==value)
{
flag = false;
}
}
}
return flag;
} void dfs(int a, int b, int **sudo, bool &flag)
{
if(a==9 && b==0)
{
for(int i=0; i<9; i++)
{
for(int j=0; j<8; j++)
{
cout<<sudo[i][j]<<' ';
}
cout<<sudo[i][8]<<endl;
}
flag = false;//find
return;
}
else
{
if(flag)
{
if(sudo[a][b]==0)
{
for(int i=1; i<=9; i++)
{
if(flag && heng(sudo, a, b, i) && shu(sudo ,a, b,i) && fang(sudo, a, b, i))
{
sudo[a][b] = i;
dfs( (b==8)?a+1:a, (b==8)?0:b+1, sudo, flag);
sudo[a][b] = 0;
}
}
}
else
{
dfs( (b==8)?a+1:a, (b==8)?0:b+1, sudo, flag);
}
}
else
{
return ;
}
}
} int main()
{
int **sudo;
sudo = new int* [9];
for(int i=0; i<9; i++)
{
sudo[i] = new int [9];
} for(int i=0; i<9; i++)
{
for(int j=0; j<9; j++)
{
cin>>sudo[i][j];
}
} //dfs
bool flag = true;
dfs(0,0,sudo, flag); for(int i=0; i<9; i++)
{
delete [] sudo[i];
}
delete [] sudo; return 0;
}

  

描述

问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个粗线宫内的数字均含1-9,并且不重复。
输入:
包含已知数字的9X9盘面数组[空缺位以数字0表示]
输出:
完整的9X9盘面数组

知识点 查找,搜索,排序
运行时间限制 10M
内存限制 128
输入

包含已知数字的9X9盘面数组[空缺位以数字0表示]

输出

完整的9X9盘面数组

样例输入 0 9 2 4 8 1 7 6 3 4 1 3 7 6 2 9 8 5 8 6 7 3 5 9 4 1 2 6 2 4 1 9 5 3 7 8 7 5 9 8 4 3 1 2 6 1 3 8 6 2 7 5 9 4 2 7 1 5 3 8 6 4 9 3 8 6 9 1 4 2 5 7 0 4 5 2 7 6 8 3 1
样例输出 5 9 2 4 8 1 7 6 3 4 1 3 7 6 2 9 8 5 8 6 7 3 5 9 4 1 2 6 2 4 1 9 5 3 7 8 7 5 9 8 4 3 1 2 6 1 3 8 6 2 7 5 9 4 2 7 1 5 3 8 6 4 9 3 8 6 9 1 4 2 5 7 9 4 5 2 7 6 8 3 1

Sudoku 数独游戏的更多相关文章

  1. POJ - 2676 Sudoku 数独游戏 dfs神奇的反搜

    Sudoku Sudoku is a very simple task. A square table with 9 rows and 9 columns is divided to 9 smalle ...

  2. android开发——数独游戏

    最近研究了一下android,写了一个数独游戏,具体如下: 游戏界面需要重写一个ShuduView继承View, 然后自定义一个Dialog: 1.需要继承 Dialog 类, 2.并要定义一个有参构 ...

  3. C语言学习 数独游戏

    摘要:花了1周多时间学习了C语言,开始练手写解数独游戏的程序. C语言学习 数独游戏 作者:乌龙哈里 时间:2015-11-22 平台:Window7 64bit,TCC 0.9.26(x86-64 ...

  4. 创建随机的9x9数独游戏终盘并打印

    创建随机的9x9数独游戏终盘并打印 项目github地址 1. 项目相关要求 1.1 要求 利用程序随机构造出N个已解答的9x9数独棋盘 . 输入 数独棋盘题目个数N(0<N<=10000 ...

  5. POJ 2676 Sudoku (数独 DFS)

      Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 14368   Accepted: 7102   Special Judg ...

  6. Swift数独游戏优化——C++与OC混编、plist自动生成

    一.为什么要C++与OC混编? 在我之前的数独游戏中涉及到的数独游戏生成算法是参考的网上其他人的算法,是利用C++来实现的.   但是在我的例子中我发现这样存在一定的局限性: 1.我是利用Termin ...

  7. 2015南阳CCPC H - Sudoku 数独

    H - Sudoku Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny g ...

  8. Leetcode0037--Sudoku Solver 数独游戏

    [转载请注明]http://www.cnblogs.com/igoslly/p/8719622.html 来看一下题目: Write a program to solve a Sudoku puzzl ...

  9. 使用Xamarin开发移动应用示例——数独游戏(四)产生新游戏算法改进

    项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们使用一个数组保存预制的游戏,然后随机从中抽取一个游戏作为新游戏,如果 ...

随机推荐

  1. 跳转 linQ

    <a href="../Book/BookDetail?book_id=@book.book_id">@book.book_name</a> query + ...

  2. OC-02 如何设计类

    1.确认类名 2.类的属性 3.功能行为 例子:类名:person   属性:height   行为:fight 例子:坦克发射3颗炮弹打中2架飞机   类:坦克.炮弹.飞机 把相同属性的对象抽象成一 ...

  3. sql逻辑执行顺序

    要知道SQL语句,我想我们有必要知道SQL Server查询分析器怎么执行我们的SQL语句的,我们很多人会看执行计划,或者用Profiler来监视和调优查询语句或者存储过程慢的原因,但是如果我们知道查 ...

  4. [转]SSAS没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)的解决办法

    转自:http://www.cnblogs.com/xvqm00/archive/2011/07/15/2107338.html 打开SSAS 数据源视图浏览数据时,提示 没有注册类别 (异常来自 H ...

  5. Mvc 模块化开发

    在Mvc中,标准的模块化开发方式是使用Areas,每一个Area都可以注册自己的路由,使用自己的控件器与视图.但是在具体使用上它有如下两个限制 1.必须把视图文件放到主项目的Areas文件夹下才能生效 ...

  6. MyBatis传入参数为集合、数组SQL写法

    参考:http://blog.csdn.net/small____fish/article/details/8029030 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合 ...

  7. Material Design学习

    前言: 最为一个用习惯了bootstrap的前端小菜,今天偶然听闻material design 这个从未听闻的前端框架,带着好奇开始了新的尝试,并将bootstrap跟material design ...

  8. 课程设计 --- 黑白棋中的 AI

    原文链接:https://www.dreamwings.cn/reversi/3013.html 到了考试周了佯,可是偏偏这个时候迎来了很多很多的课程设计,幸好教授把C语言的课程设计提前发出了,不然都 ...

  9. python学习之函数

    1.函数名可以被赋值 比如: def aaa(): pass b = aaa//将函数名字赋值给b b()//跟aaa()效果一样 2.return 2.1.如果函数不写return的话,会默认返回N ...

  10. 教你如何查看一款App里面所包含的图片

    在开发制作App的过程中,有时候会想看看一些精美的App里面所设计的素材.这个时候就需要用到我给大家展现的方法了.下面就看看该如何操作能让一个App呈现出它原始的一面,这次我以Any.Do为例给大家演 ...