Sudoku 数独游戏
#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,并且不重复。 |
|---|---|
| 知识点 | 查找,搜索,排序 |
| 运行时间限制 | 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 数独游戏的更多相关文章
- 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 ...
- android开发——数独游戏
最近研究了一下android,写了一个数独游戏,具体如下: 游戏界面需要重写一个ShuduView继承View, 然后自定义一个Dialog: 1.需要继承 Dialog 类, 2.并要定义一个有参构 ...
- C语言学习 数独游戏
摘要:花了1周多时间学习了C语言,开始练手写解数独游戏的程序. C语言学习 数独游戏 作者:乌龙哈里 时间:2015-11-22 平台:Window7 64bit,TCC 0.9.26(x86-64 ...
- 创建随机的9x9数独游戏终盘并打印
创建随机的9x9数独游戏终盘并打印 项目github地址 1. 项目相关要求 1.1 要求 利用程序随机构造出N个已解答的9x9数独棋盘 . 输入 数独棋盘题目个数N(0<N<=10000 ...
- POJ 2676 Sudoku (数独 DFS)
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14368 Accepted: 7102 Special Judg ...
- Swift数独游戏优化——C++与OC混编、plist自动生成
一.为什么要C++与OC混编? 在我之前的数独游戏中涉及到的数独游戏生成算法是参考的网上其他人的算法,是利用C++来实现的. 但是在我的例子中我发现这样存在一定的局限性: 1.我是利用Termin ...
- 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 ...
- Leetcode0037--Sudoku Solver 数独游戏
[转载请注明]http://www.cnblogs.com/igoslly/p/8719622.html 来看一下题目: Write a program to solve a Sudoku puzzl ...
- 使用Xamarin开发移动应用示例——数独游戏(四)产生新游戏算法改进
项目代码可以从Github下载:https://github.com/zhenl/ZL.Shudu .代码随项目进度更新. 前面我们使用一个数组保存预制的游戏,然后随机从中抽取一个游戏作为新游戏,如果 ...
随机推荐
- HTML5 input placeholder 颜色修改
在开发中遇到的一个小问题,记录下来./*placehodel*/ input:-ms-input-placeholder{color:#a9a9a9;}/* Internet Explorer 10+ ...
- 浅谈Scrapy爬虫(一)
以下谈论的 scrapy 基于 0.20.2 版本(当前最新版本是 0.22.0 ),python 2.7.6. 开发环境是windows 7 sp1. 互联网上比较有价值的参考资料 1. Scr ...
- android 官方文档 JNI TIPS
文章地址 http://developer.android.com/training/articles/perf-jni.html JNI Tips JNI is the Java Native I ...
- Linux的fasync驱动异步通知详解【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51851338 版权声明:本文为博主原创文章,未经博主允许不得转载. 工作项目用有 ...
- java 线程 障碍器
package de.bvb; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.TimeUnit; /** ...
- c# 动态调用.net编写的webservices接口
创建类WebServiceHelper: public class WebServiceHelper { #region 动态调用WebService动态调用地址 /// < summary&g ...
- JavaScript 动态脚本
动态脚本,指的是在页面加载时不存在,但将来的某一个时刻通过修改DOM动态添加的脚本. <script type="text/javascript"> function ...
- input 的blur事件之后button的onclick事件不执行解决方案
最近发现网页程序中有个BUG,就是在input标签输入框中输入完数据后,直接点击“取消” 按钮的时候.出现网页崩死的情况: 经过小主酸菜我,各种方法的尝试后,找到一个初步可以解决的方案,在这里分享给大 ...
- ubuntu 设置 默认的JDK路径
首先查询有多少种JDK已经被安装了 sudo update-alternatives --list java 其次 配置你想默认的JDK sudo update-alternatives --conf ...
- SpringMVC框架下实现JSON(类方法中回传数据到jsp页面,使用jQuery方法回传)
JSON的实现,即将需要的数据回传到jsp页面: 1>.加入实现Json的三个架包到lib中:2>.目标方法上边加入注解,需要返回的值3>.在jsp页面中书写jQuery方法: ec ...