我最近在写论文想写个数独的游戏,研究别人的代码,其他都能明白,唯独算法里的几句话不理解什么作用,有谁能解答一下吗???高分悬赏!!!staticintDFS(){//静态成员方法for(inti=...
我最近在写论文想写个数独的游戏,研究别人的代码,其他都能明白,唯独算法里的几句话不理解什么作用,有谁能解答一下吗???高分悬赏!!!static int DFS(){ //静态成员方法
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
if(data[i][j]==0){
for(int k=1;k<=9;k++){
if( row[i][k]==0 && col[j][k]==0 && sql[(i+2)/3][(j+2)/3][k]==0 ){ //行、列3*3区域的检验
data[i][j]=k;
row[i][k]=1;
col[j][k]=1;
sql[(i+2)/3][(j+2)/3][k]=1; //九宫的间隔
if( DFS()==1 )
return 1;
else{
data[i][j]=0;
row[i][k]=0;
col[j][k]=0;
sql[(i+2)/3][(j+2)/3][k]=0; //宫内格子间的间隔
}
}
if(k==9)
return 0; //都设置完,结束
}
}
}
}
return 1;
展开